- 注册一个 npm 账号
- 创建一个 npm package
- 运行
npm login
登录 - 运行
npm publish
发布
完事,发布一个 npm package 就这么简单。
不过,如果你要发布的 package 名字已经有人用了,npm 可能会提示 You do not have permission to publish "package-name". Are you logged in as the correct user?
,要解决这个问题,你有以下两种做法可以选择:
- 换一个名字继续发布
- 在命名空间下发布
- 通过
npm search [name]
命令搜索 package 名称是否已经存在 - 在
package.json
中将name
替换成没有人使用过的名字 - 重新运行
npm publish
发布 - 一般我们也会相应地修改项目文件名(tips:
mv [old-name] [new-name]
命令可以用来做这件事情哦)
要找到一个没有人用过的 package 名称不是易事,为了解决这个问题,npm 给我们提供了命名空间。我们的用户名或者组织名就是一个命名空间,如果要在命名空间下发布 package,只需要保证 package 名称在这个命名空间下是唯一就行。
要将 package 发布到命名空间下,要做如下改动:
- 修改 package 名称,有两种做法:
- 手动在
package.json
中将name
改成@username/package-name
- 或者在创建 package 的时候使用
npm init --scope=username
而不是npm init
- 手动在
- 使用
npm publish --access public
命令进行发布(因为 private package 是收费服务)
正经情况下,发布 package 不止这么简单,一般我们可能需要完成以下步骤:
- 运行测试
- 更新版本号
- 创建 git tag
- 推送最新代码到 github
- 发布 package 到 npm
- 创建 release notes
这么规律又繁复的工程,还是交给工具来吧,np
就是这个工具。
前置工作
- 你的项目得是一个 git 仓库,而且还需要一个远程仓库
- 起码得 push 过一次到远程仓库
- 工作区目前是没有改动的
如果前置条件不满足就会发布失败。
安装 np
全局安装:
npm install --global np
使用 np
直接运行 np
就可以了,np 会弹出一个交互 UI 让你做各种选择,做完选择后剩下的发布工作就由 np 来完成了。
np 文档