因为国内网络的原因, 给 npm 设置 registry 是必须的事情, 不然安装个依赖都下到天荒地老, 然后设置了 registry 后, 使用npm publish又会将包发到非官方去, 简单的做法就是去.npmrc文件把 registry 给注释了, 然后整天改来改去也挺麻烦的, 有没有省事一点的方法呢?

1. 登录npm

首先, 我们需要先登录到npm, 登录的方法有两种

1.1 账号密码登录

npm login --registry=https://registry.npmjs.org/
1

这里不能直接使用npm login登录, 不然会链接到registry设置的环境去

npm login                                       
# npm notice Log in on https://registry.npmmirror.com/
1
2

然后输入 npmjs 的账号密码, 即可登录

1.2 使用 token 登录

如果你不希望每次使用 npm 时都输入用户名和密码,你可以创建一个个人访问令牌(Token),然后使用这个令牌进行登录。
访问 https://www.npmjs.com/settings 并登录你的账户。
在左侧菜单中,选择 “Tokens” 选项。
点击 “Generate new token” 按钮。
为你的 token 命名,然后点击 “Generate”。
复制生成的 token。
最后在 .npmrc 文件中设置:

npm config set //registry.npmjs.org/:_authToken=YOUR_TOKEN_HERE
1

可以使用测试下是否成功

npm whoami --registry=https://registry.npmjs.org/
1

2. 发布包

2.1 修改 package.json 文件

在 package.json > scripts 里添加

"release": "npm publish -r --access public"
1

当然还可以添加prepublishOnly, 在发布前自动编译啥的, 如:

"prepublishOnly": "npm run build"
1

再添加一下内容:

"publishConfig": {
  "registry": "https://registry.npmjs.org/"
}
1
2
3

2.2 发布

一切准备就绪后, 就可以发布了, 执行命令

npm run release
1