本文记录了如何发布npm包到 http://registry.npmjs.org 的过程,完整的 npm 命令可以参考 npm CLI commands 。
- 创建待发包工程
1 | npm init [--force|-f|--yes|-y|--scope] |
npm init 创建了一个 package.json 描述 project 信息。
name 描述了待发布的 package 名。
version 描述了待发布的版本号。
dependencies 描述了该 project 所需要的依赖包,在发布前保证所有依赖在 npmjs.org 均可找到。
- 排除无需发布的文件
1 | touch .npmignore |
.npmignore 文件的写法和 .gitignore 文件的写法一样,可以将无需发布的文件路径添加到该文件中。
- 添加用户
1 | npm adduser [--registry=http://registry.npmjs.com] [--scope=@orgname] |
该命令用来注册一个账户。它会提示你填写用户名密码和邮箱,然后(通过将你的验证信息存储在 .npmrc 文件中)自动登录,在 npmjs.org 发包需要验证邮箱。
你可以用 npm logout
命令登出,也可以用 npm login
命令再次登入。可以用 npm who am i
命令查看当前登录用户名。
- 预发包
1 | npm pack |
该命令会根据当前配置将 project 打包为 .tgz
文件,可以使用 npm install
+ .taz
文件的路径测试是否打包正确。
- 发包
1 | npm publish |
默认发布的是公共包,如果包名带有 npm-scope ,那么默认发的是私有包,私有包在 npmjs 上发布需要收费,如果不想发私有包可以使用 npm publish --access public
发布公共包。
每次发布需要保证版本号有变更,如果包名和版本号已经存在那么会发布失败。
- 取消发包
1 | npm unpublish |
可以使用以上命令取消发包,但是如果是不再支持某个包的话应该是用 npm deprecate
来表示不再支持。