发布一个npm包
# 注册Npm账号
首先需要去npm官网注册一个账号 https://www.npmjs.com/
# 切换镜像源
注册好账号之后,如果你本地使用的是淘宝的镜像,则需要将本地的npm源切换成npm自己的地址
查看当前镜像源
npm get registry
切换淘宝镜像源
npm config set registry http://registry.npm.taobao.org
切换npm源
npm config set registry https://registry.npmjs.org/
1
2
3
4
5
6
2
3
4
5
6
# 登陆账号
切换成npm源后打开终端,如果是第一次在本机发包,则先添加你的npm账号到本地。输入命令
npm adduser
1
输入你的用户名,回车,然后再输入密码
依次输入用户名 密码 邮箱 验证码,即可登陆成功。
如果不是第一次发包则直接npm login 登陆就行
# 发布
接着npm publish 发布即可
如果有不想发布出去的文件,就可以将它写入.gitignore 或.npmignore中,上传就会被忽略了
发布好之后就可以在npm上搜到你的包了。
记住每次发布的包版本号都需要变更,不然会导致发布失败。
# 错误总结
下面总结我在发布时遇到的几个发布失败的错误码,以及解决方法
- 1、401
401一般就是你的账号密码输入有误导致的。自己核对后重新登陆即可
- 2、402 这个问题一般是你尝试发布到公共范围导致的问题
npm ERR! code E402
npm ERR! 402 Payment Required - PUT https://registry.npmjs.org/.... - You must sign up for private packages
1
2
2
因为默认访问级别为私有。要解决此问题,可以设置npm config set access public或添加以下内容到package.json
{
// ...
// 添加以下
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
}
// ...
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
3.403 一般出现403就表示你的包名已经被别人使用了。解决办法就是换一个包名。 但大多数时候我建议你将包放在一个唯一的域下,这样以后你的包就不会出现和别人重名的情况,一般这个域会以你的npm username为名,前面加上@。 例如 @username/xxx
4.404 出现404的问题,就是你的组织未找到,也就是403状态码中解决办法提到的将包放到一个私有的域下。这个名字你当然不能胡乱写,npm会去搜索是否有这个名字,有的话将你本次的包添加到他下面,没有就会给你报404的错误了。所以大多数时候直接以你的npm 用户名就行了
以上就是本篇的全部内容
编辑 (opens new window)
上次更新: 2023/03/08, 09:35:38