npm发布注意事项

这篇博客介绍了在Node.js环境中发布npm包的详细步骤,包括执行npm init生成package.json,npm adduser进行用户认证,切换registry到npm官方源以解决上传权限问题,以及在发布时可能遇到的权限错误,需要使用sudo。遵循semver标准制定版本号,确保正确发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm发布注意事项

 

我在折腾学习NodeBB插件开发的过程中,遇到了Node包上传的问题。因为NodeBB的插件要使用,必须以nodebb-plugin-开头,然后必须是发布的插件,这样才能够被nodebb识别。因此我开始学习怎样发布npm。

 

经过我的实测,正确发布npm包的步骤为:

1、执行npm init,生成package.json。package.json字段多且杂,我们最好让关键的部分交由系统帮我们生成,这样的话,采用npm init是最正确的办法。它以问答的形式获取一些重要的信息,然后生成package.json。

命令:npm init

2、执行npm adduser,接下来会以问答的形式向你了解你的用户名、密码以及公开的邮箱。如果没有执行这些操作,直接上npm publish的话,会报

npm ERR! need auth auth and email requiredfor publishing

npm ERR! need auth You need to authorize this machine using `npm adduser`

错误。


3、记得将registry切回最初的源。因为最初的http://registry.npmjs.org这个源国内用户访问非常慢,所以一开始我们可能换成了国内淘宝的镜像:http://registry.npm.taobao.org。但是淘宝这个镜像没有开放上传的权限,因此会报这样的错误:

npm ERR! publish Failed PUT 403

npm ERR! Error: no_perms Private modeenable, only admin can publish this module: nodebb-plugin-route-cms

有至少两种方法:

命令:npm adduser

1)修改~/.npmrc中的registry字段(命令:vi ~/.npmrc)

2)直接在命令行修改即可。

命令:npm set registry http://registry.npmjs.org

4、在执行npm publish的时候,因为要访问~/.npm这个目录,不知怎么回事(权限应该正确的啊),需要以root账户权限执行才行。因此这里要加上sudo。如果不加上sudo的话,会出现这样的错误:

npm ERR! addLocal Could not install .

npm ERR! Error: EACCES, open'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json'

npm ERR! { [Error: EACCES, open'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json']

npm ERR!  errno: 3,

npm ERR!  code: 'EACCES',

npm ERR!  path:'/home/jiangcaiyang/.npm/nodebb-plugin-route-cms/0.0.1/package/package.json' }

npm ERR!

npm ERR! Please try running this command again as root/Administrator.

--tag的意思是标记版本号。这里按照semver的标准来制定版本(参考这里

 

版本格式:主版号.次版号.修订号,版号递增规则如下:

主版号:当你做了不相容的API 修改,

次版号:当你做了向下相容的功能性新增,

修订号:当你做了向下相容的问题修正。

先行版号及版本编译资讯可以加到「主版号.次版号.修订号」的后面,作为延伸。

 

命令:sudo npm publish --tag 0.0.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值