如果发布的包只打算放在公司的私有镜像库中,需要先设置一下registry
// 1、直接设置
npm config set registry <registry>
// 2、有使用nrm的可以用nrm切换
nrm use <registry>
// 3、项目根目录放一个.npmrc文件,内容包含下面内容
registry=<registry>
// 添加用户时可以手动设置registry
npm adduser [--registry=<registry>]
// 登录用户时可以手动设置registry
npm login [--registry=<registry>]
登录后进入到要发布包的项目根目录
npm publish --registry=<registry>
发布包后需要验证的话,可以使用下面的命令
// search可以用关键字
npm search <keyword> --registry=<registry>
// 通过发布的包名进行查询
npm info <package> --registry=<registry>
更新包只需要2步:
npm publish --registry=<registry>
// 完全删除这个包
npm unpulish <package> [--force]
// 删除指定版本
npm unpulish <package>[@<version>] [--force]
撤销发布的包有下面的规则:
- 不允许撤销发布已经超过24小时的包
- 如果在24小时内确实要撤销,需要加–force参数
- 即使撤销了发布的包,再次发布的时候也不能与之前被撤销的包的名称/版本其中之一相同,因为这两者构成的唯一性已经被占用,官方并没有随着撤销而删除
npm deprecate
如果是自行测试上传的包,可以使用上面的方式,如果是发布给别人用的,建议用此命令。
npm deprecate <package>[@<version>] <message>
这个命令,并不会在npm上里撤销已有的包,但会在任何人尝试安装这个包的时候得到deprecated的警告