npm 私有库安装
一、搭建
- 全局安装 verdaccio
$ npm i -g verdaccio
- 启动 verdaccio
$ verdaccio
刚启动没有发包上来,是这样:
- 修改以下
npm
或yarn
的镜像源 http://172.26.5.36:4873
# 添加私有源(我使用了 nrm 来管理 npm 源)
$ nrm add frankie-loc http://172.26.5.36:4873
# 切换源
$ nrm use frankie-loc
# or
# npm set registry http://172.26.5.36:4873
# 注册用户,对应你 NPM 账号密码(若没有,用邮箱注册一个即可)
$ npm adduser
# 查看当前用户是否是注册用户
$ npm who am i
二、发包
在发包之前,你需要去 NPM 平台官网注册一个账号。很简单省略...
完了之后,登录你的 NPM 账号:
# add
$ npm set registry http://172.26.5.36:4873
# switch registry
$ npm config set registry http://172.26.5.36:4873
# login npm account
$ npm adduser
# 登录过用 login,第一次则用 adduser,它包括了登录操作。
$ npm login
登录成功,长这样:
$ npm login
Username: xxx
Password:
Email: (this IS public) xxxx@qq.com
Logged in as xxx on http://172.26.5.36:4873.
在跟目录下,执行命令 npm publish
即可。或可在 package.json
脚本命令中定义。(后者更合适)
$ npm publish
npm notice
npm notice 📦 privative-npm@1.0.0
npm notice === Tarball Contents ===
npm notice 54B index.js
npm notice 212B package.json
npm notice 36B README.md
npm notice === Tarball Details ===
npm notice name: privative-npm
npm notice version: 1.0.0
npm notice package size: 416 B
npm notice unpacked size: 302 B
npm notice shasum: 887836aa4a154902faf31b13e60b8adcdd07b924
npm notice integrity: sha512-fyzitNqmif188[...]hFY+zmcIW6qTg==
npm notice total files: 3
npm notice
+ privative-npm@1.0.0
看到已经上传成功了,刷新页面就能看到:
三、更新包
如果我们要更新包,其中版本号 version
一定要修改,否则会更新失败,如下:
$ npm publish
npm ERR! code EPUBLISHCONFLICT
npm ERR! publish fail Cannot publish over existing version.
npm ERR! publish fail Update the 'version' field in package.json and try again.
npm ERR! publish fail
npm ERR! publish fail To automatically increment version numbers, see:
npm ERR! publish fail npm help version
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/frankie/.npm/_logs/2021-07-14T06_16_31_553Z-debug.log
这里我就只改个版本号吧,更新包的命令仍然是 npm publish
,上传成功后,刷新页面可以看到新版本了。
四、撤销包
需要注意的是,在 NPM 平台撤销包,是有非常严格限制的,不是随意就能撤销已发布到平台的包的,详情可看:NPM Unpublish Policy。
# 撤销包的某个版本
$ npm unpublish [<@scope>/]<pkg>@<version>
# 撤销包
$ npm unpublish [<@scope>/]<pkg>
如果你的目的是鼓励用户升级,或者您不想再维护软件包,请考虑改用 deprecate
命令。
$ npm deprecate <pkg>[@<version>] <message>
五、使用包
我们将 NPM 发布到私有或公开的 NPM 平台后,都可以通过 npm
、yarn
等包管理工具去安装到我们的项目中。
由于我们上面示例,是将 privative-npm
包发布到我们私有的 NPM 服务器下,因此需要将 npm 镜像源切换至 http://localhost:4873/
即可:
# use npm
$ npm config set registry http://172.26.5.36:4873
# use yarn
$ yarn config set registry http://172.26.5.36:4873
随便创建一个项目,并安装 privative-npm
依赖包,在 node 环境运行一下 index.js
可以看到打印出 OK!
,那说明成功了!