本文记录了如何发布npm包到 http://registry.npmjs.org 的过程,完整的 npm 命令可以参考 npm CLI commands

  1. 创建待发包工程
1
npm init [--force|-f|--yes|-y|--scope]

npm init 创建了一个 package.json 描述 project 信息。
name 描述了待发布的 package 名。
version 描述了待发布的版本号。
dependencies 描述了该 project 所需要的依赖包,在发布前保证所有依赖在 npmjs.org 均可找到。

  1. 排除无需发布的文件
1
touch .npmignore

.npmignore 文件的写法和 .gitignore 文件的写法一样,可以将无需发布的文件路径添加到该文件中。

  1. 添加用户
1
npm adduser [--registry=http://registry.npmjs.com] [--scope=@orgname]

该命令用来注册一个账户。它会提示你填写用户名密码和邮箱,然后(通过将你的验证信息存储在 .npmrc 文件中)自动登录,在 npmjs.org 发包需要验证邮箱。
你可以用 npm logout 命令登出,也可以用 npm login 命令再次登入。可以用 npm who am i 命令查看当前登录用户名。

  1. 预发包
1
npm pack

该命令会根据当前配置将 project 打包为 .tgz 文件,可以使用 npm install + .taz 文件的路径测试是否打包正确。

  1. 发包
1
npm publish

默认发布的是公共包,如果包名带有 npm-scope ,那么默认发的是私有包,私有包在 npmjs 上发布需要收费,如果不想发私有包可以使用 npm publish --access public 发布公共包。
每次发布需要保证版本号有变更,如果包名和版本号已经存在那么会发布失败。

  1. 取消发包
1
npm unpublish

可以使用以上命令取消发包,但是如果是不再支持某个包的话应该是用 npm deprecate 来表示不再支持。