NPM发布及版本管理
NPM是随同NodeJS一起安装的包管理工具。
允许用户从NPM服务器下载别人编写的第三方包到本地使用;
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用;
允许用户将自己编写的包或命令行程序上传到服务器供别人使用;
1. 注册NPM账号
用户可以登陆 https://www.npmjs.com/ 注册个人账户。
注意:注册完需要验证邮箱,不然发布包的时候会失败。
2. NPM仓库管理
推荐使用 nrm 对NPM仓库进行管理。
nrm 是一款NPM仓库管理软件,可以快速切换NPM仓库。
a. 安装
npm install -g npm
b. 列出所有NPM仓库
nrm ls
c. 增加NPM仓库
nrm add cnpm https://registry.npm.Taobao.org
d. 切换NPM仓库
nrm use npm
3. NPM发布
a. 增加用户
npm adduser
发布包之前,需要增加一个账户,如果有自己的账户,直接 npm login 登录即可;
增加账户时,需要填写注册NPM时填写的用户名、密码、邮箱;
显示 logged is as yueluo on https://registry.npmjs.org 表示已经增加成功;
b. 切换仓库
查看一下NPM仓库,nrm ls 前面有 * 号的就是当前仓库。
如果当前指向的不是 npm 的仓库地址,需要使用 nrm use npm 进行切换。
注意:发布NPM包时,必须使用npm的仓库地址,毕竟是向人家的免费仓库里发布包。
c. 发布NPM包
切换到需要发布包的根路径下,执行以下命令。出现 + … 的字样代表当前包发布成功。
npm publish
d. 发布scoped包
现在我的 package.json 是这样的,name 属性为 yueluo-first。
如果想发布名为 @yueluo/yueluo-first的包,使用域服务,是需要收费的。
当然,需要不想被收费,可以使用以下命令进行发布。
npm publish --access public
为什么要使用域服务?
假如存在两个包,都是babel-loader。一个属于xiao ming,一个属于xiao li。
这时使用域服务,为bebel-loader添加前缀,发布时就不会存在冲突问题。
@xiaoming/babel-loader
@xiaoli/babel-loader
4. 版本迭代
发布npm包,自然存在版本迭代的需求,介绍一下常用的命令。
a. 增加版本
npm version <magor | minor | path>
例如当前我的package.json文件中的版本是0.2.0,如果我想修改版本。
我可以执行 npm version 0.2.1 对修订版本进行修改。
修改后执行 npm publish 命令再次发布即可。
b. 查看版本迭代情况
npm view yueluo-first versions
5. 废弃包版本
版本废弃
可以使用以下命令进行指定版本的版本废弃。
npm deprecate yueluo-first@0.1.0 'deprecate fircdst version'
这时,你或许会发现当使用 npm view 查看版本时,版本是没有变化的。
不过不用担心,这是正常现象,当你安装已经废弃的版本时,npm 会报以下提示。
npm WARN deprecated yueluo-first@0.1.0: deprecate first version
6. 删除包
NPM包在24小时后可再次重发,发布72小时之内的包可删除,超出这个时间就不可以删除啦。
可以使用以下命令进行包的删除。
a. 删除指定版本的包
npm unpublish yeuluo-first@0.1.0 -force
b. 删除包
npm unpublish yeuluo-first -force
7. 总结
这就是我总结的所有与NPM发布包相关的命令啦,希望可以对大家有所帮助。