当前位置: 首页 > news >正文

开发npm包【详细教程】

1. 给 npm 包取个【唯一】的名字!

npm 包命名规范

  • 只能包含小写字母(a-z)、数字(0-9)、连字符(-) 和 下划线(_),不能包含空格、大写字母、标点符号(除连字符和下划线外)或特殊字符(如 !、@、# 等)
  • 长度不超过 214 个字符
  • 建议以字母开头
  • 连字符(-)常用于分隔单词(如 react-dom),下划线(_)使用较少,避免连续使用连字符或下划线(如 my–package 不推荐)
  • 名称应简洁易记,体现包的具体功能
  • 避免禁用的名称,如 fs、npm、package、install、publish 等

范围包

包名格式如下的为范围包,适合个人或企业发布的系列包,如 @vue/cli 等

@scope/package-name
  • scope 是npm 用户名或组织名

在发布时,默认为私有范围包(仅自己或授权用户可见,且需要付费),可指定为公共范围包(所有人可见可安装,免费)

npm publish --access public

检验包名是否唯一

npm search 包名

或在 npm官网 中搜索试试

在这里插入图片描述

2. 创建项目,完成开发

使用 vite 的库模式开发

以包名 frontend-monitor-sdk 为例

npm create vite@latest frontend-monitor-sdk -- --template vanilla-library

使用 npm 开发

以包名 mypack-test 为例

  1. 新建文件夹 mypack-test
  2. 用vscode 打开文件夹 mypack-test
  3. 终端执行 npm init 生成 package.json 文件,按提示输入相关信息或一路回车,最后输入 y 回车即可。
    在这里插入图片描述
    蓝框内的部分为包的信息,可根据需要自行输入(或等生成package.json后再修改)
  • package name 包名,默认为项目名称
  • version 包的版本号,默认为 1.0.0
  • description 包的描述信息
  • entry point 包的入口文件(包内的所有内容,要在此文件对外导出),默认为 index.js
  • test command 测试命令,默认为 “echo “Error: no test specified” && exit 1”
  • git repository 包的远程 git 仓库
  • keywords 关键字
  • author 包的作者
  • license 开源文件协议,默认为 ISC
  1. 新建文件index.js,内容为
    要点:定义的函数/变量一定要对外导出!

    /*函数功能——求和参数——两个数字
    */
    function sum(a, b) {return a + b;
    }module.exports = {sum: sum,
    };
  2. 新建文件README.md,内容为包相关的信息

  3. 新建文件 .npmignore,内容为发布时不需要打包的文件,如

    node_modules
    *.log
    
http://www.lryc.cn/news/618249.html

相关文章:

  • Bevy渲染引擎核心技术深度解析:架构、体积雾与Meshlet渲染
  • C++Linux八股
  • 08--深入解析C++ list:高效操作与实现原理
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • 微前端架构:原理、场景与实践案例
  • 前端JS处理时间,适用于聊天、操作记录等(包含刚刚、x分钟前、x小时前、x天前)
  • Windows已经安装了一个MySQL8,通过修改配置文件的端口号跑2个或多个Mysql服务方法,并注册为系统服务
  • lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
  • 嵌入式系统学习Day17(文件编程)
  • 项目实战2——LAMP_LNMP实践
  • 智能化评估体系:数据生产、在线化与自动化的三重奏
  • 解锁 Appium Inspector:移动端 UI 自动化定位的利器
  • 【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统
  • Secure CRT做代理转发
  • 【element树组件】el-tree实现连接线及hover编辑效果
  • ip归属地批量查询脚本
  • 视频输入输出模块介绍和示例
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • history命令增强记录执行时间与登录IP
  • 线性代数 · 矩阵 | 最小多项式
  • 【debug 解决 记录】stm32 debug模式的时候可以运行,但是烧录没法执行
  • Mac如何安装telnet命令
  • 论答题pk小程序软件版权的
  • 家政小程序系统开发:推动家政行业数字化转型,共创美好未来
  • 校园快递小程序(腾讯地图API、二维码识别、Echarts图形化分析)
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的母婴用品精准营销策略研究
  • 思科、华为、华三如何切换三层端口?
  • Web前端小游戏轮盘。
  • 盲盒抽谷机小程序系统开发:解锁盲盒新玩法,开启潮玩社交新时代
  • OpenHarmony介绍