一文搞定 npm 包发布与管理
# 一文搞定 npm 包发布与管理
因为最近负责组内的基础能力建设,发布各种功能 / 插件包犹如家常便饭,所以熟悉对 npm 包的发布与管理是非常有必要的,故此有了本篇总结文章,方便以后查阅,也希望帮助到有需要的同学。
# 一. 初始化 npm 项目
根据一下命令能初始化一个 npm 包项目,命令交互过程中会让你填入 项目名称、版本、作者等信息,可以直接回车跳过(命令最后增加 -y
使用默认设置)。
npm init --save -y
1
# 二. 包权限管理
很多时候,一个项目包往往不止是你一个人在管理的,这时需要给其他一起维护的同学开通发布的权限,相关使用命令如下:
# 查看模块 owner,其中 demo 为模块名
$ npm owner ls demo
# 添加一个发布者,其中 xxx 为要添加同学的 npm 账号
$ npm owner add xxx demo
# 删除一个发布者
$ npm owner rm xxx demo
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 三. 发布版本
# 1. 发布稳定版本
更新版本号共有以下选项(major | minor | patch | premajor | preminor | prepatch | prerelease)。
注意:项目的 git status 必须是 clear,才能使用这些命令。
# major 主版本号,并且不向下兼容 1.0.0 -> 2.0.0
$ npm version major
# minor 次版本号,有新功能且向下兼容 1.0.0 -> 1.1.0
$ npm version minor
# patch 修订号,修复一些问题、优化等 1.0.0 -> 1.0.1
$ npm version patch
# premajor 预备主版本 1.0.0 -> 2.0.0-0
$ npm version premajor
# preminor 预备次版本 1.0.0 -> 1.1.0-0
$ npm version major
# prepatch 预备修订号版本 1.0.0 -> 1.0.1-0
$ npm version major
# prerelease 预发布版本 1.0.0 -> 1.0.0-0
$ npm version major
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
版本号更新后,我们就可以进行版本的发布
$ npm publish
1
# 2. 预发布版本
很多时候一些新改动,并不能直接发布到稳定版本上(稳定版本的意思就是使用 npm install demo
即可下载的最新版本),这时可以发布一个 “预发布版本”,不会影响到稳定版本。
# 发布一个 prerelease 版本,tag=beta
$ npm version prerelease
$ npm publish --tag beta
1
2
3
2
3
比如原来的版本号是 1.0.
,那么以上发布后的版本是 1.0.1-0
,用户可以通过 npm install demo@beta
或者 npm install demo@1.0.1-0
来安装,用户通过 npm install demo
安装的还是 1.0.1
版本。
# 3. 将 beta 版本设置为稳定版
# 首先可以查看当前所有的最新版本,包括 prerelease 与稳定版本
$ npm dist-tag ls
# 设置 1.0.1-1 版本为稳定版本
$ npm dist-tag add demo@1.0.1-1 latest
1
2
3
4
5
2
3
4
5
这时候,latest 稳定版本已经是 1.0.1-1
了,用户可以直接通过 npm install demo
即可安装该版本。
# 4. 将 beta 版本移出
# 将 beta 版本移出
$ tnpm dist-tag rm demo beta
1
2
2
# 5. 将 tag 推送到 Git 远程仓库中
# 当我们发布完对应的版本,可以通过以下命里将版本号推送到远程仓库,其中 xxx 对应分支
$ git push origin xxx --tags
1
2
2
# 四. 发布版本规则
# 1. alpha
- alpha:内部版本。此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的 Bug 较多,需要继续修改。
# 发布 内部版本
$ npm publish --tag alpha
1
2
2
# 2. beta
- beta:公测版本。该版本相对于 alpha 版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对象是软件的 UI,这个阶段的版本也会一直加入新的功能。
# 发布 公测版本
$ npm publish --tag beta
1
2
2
# 3. rc
- rc:即 Release candiate,正式版本的候选版本。 该版本已经相当成熟了,基本上不存在导致错误的 BUG,与即将发行的正式版相差无几,不会再加入新的功能了,主要着重于除错。
# 发布 正式版本的候选版本
$ npm publish --tag rc
1
2
2
# 五. 查看版本信息
可以通过 npm info
来查看模块的详细信息。
$ npm info
1
上次更新: 2022/07/08, 18:18:02