【规范】前端NPM包发布规范

601 阅读2分钟

前端NPM包发布规范

背景介绍

我们在日常项目开发过程中,会积累很多可以单独抽离出来进行复用的JavaScript组件,希望能将其打包成npm包,供其他人使用,这种情况下可以考虑将其发布到公司npm库;

首先介绍下scope概念,所谓scope就是在npm包名前面加一个形如“@scope”的前缀,例如 @deyi/d-utils,scope的机制好比把该scope下的所有包归为一个组,npm在执行操作时,也会因此有一些特殊的处理;比如某公司内部npm包前缀是“@deyi”,我们在发布包时,需要在package.json中的name字段加上"@deyi/"。(建议:想好npm包名称后建议先“占坑”,以防出现开发完成后,发现名称已被占用现象)

一、NPM初始化(使用npm install,使用SCMPF编译无该步骤)

NPM包开发规范

// 把registry设置成社区的npm repo地址 npm config set registry registry.npmjs.org

// 有权限或者密钥等,本地验证通过一下

二、开发过程中需严格自测

建议使用npm link的方式进行开发 (可参考: www.jianshu.com/p/aaa7db89a…)

// 进到npm包文件夹
 
cd xxx/d-utils
npm link

// 进到业务项目文件夹
 
cd /xxx/package
npm link d-utils

三、版本更新约定

  • 更新BUG和优化功能建议更新第三位小版本;
  • 大的需求升级建议更新第二位版本;
  • 大的重构和不向下兼容建议升级第一位大版本;

需要注意:同一个npm包每个版本(version)只能发布一次,在更新npm包内容之后需要更新package.json中的version。

四、使用npm publish的方式发布npm包到指定源

npmjs: registry.npmjs.org

注册 npmjs.org 账号
npm adduser / npm login
登录
npm publish
发布

五、打tag锁定版本(建议)

npm包发布完成后,对代码打tag,命名建议为publish/x.x.x 格式,锁定当前版本,一经发布,不允许再更改代码;

六、添加合作开发人

npm owner add part_name @deyi/d-utils