npm发包

2021-03-24  本文已影响0人  合肥黑

参考
使用npm 发布自己写的第三方包-npm publish
npm学习(七)之如何发布包、更新发布包、删除发布包

一、NPM登录
1.注册

如果没有账号,先去www.npmjs.com/注册。

2.登录

命令:npm login


image.png
3.查看当前用户

命令:npm whoami


image.png
二、发新包
1.新建一个文件夹并进入,初始化一些包的相关信息

命令:npm init

之后会生成一个package.json文件

2.新建一个文件用来存放包(模块),尝试发布

命令:npm publish


image.png
三、更新包
1.如果本地已经安装过此包,首先修改package.json文件中的版本后,执行npm publish
image.png
2.如果本地没有安装过此包,则需要先找个文件夹安装一下。

将这个包的部分内容进行修改,修改完之后,我们想作为一个新的版本进行提交,那么第一步要做的就是修改版本号,如何修改?
使用命令:npm version <update_type>进行修改,update_type 有三个参数,

具体咋用:

然后执行npm publish 我仍然遇到报错

npm ERR! code E403
npm ERR! 403 Forbidden - PUT http://registry.npmjs.org/@xxxr -
 You cannot publish over the previously published versions: 3.2.10.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2021-03-24T08_35_39_327Z-debug.log

可是我确认过,远端之前的版本是3.2.9,我现在要发3.2.10呀!此时不要着急,过几分钟去npm官网自己的包页面刷新一下就能看到发版成功了


image.png

如果一直刷新还是没成功,那只能再npm publish一次,具体原因不清楚……

四、删除包

这里要说一点,取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为(试想一下你撤销了发布的包[假设它已经在社区内有了一定程度的影响],这对那些已经深度使用并依赖你发布的包的团队是件多么崩溃的事情!)

首先如果就是想要删除当前的这个版本,执行命令npm unpublish xxx(包名),去官网查看发现已经没有这个包了,如果权限不够加上 --force


image.png

报错,并建议我修改包的版本

npm unpublish的推荐替代命令:npm deprecate <pkg>[@<version>] <message>

使用这个命令,并不会在社区里撤销你已有的包,但会在任何人尝试安装这个包的时候得到警告

例如:npm deprecate penghuwanapp '这个包我已经不再维护了哟~'

五、一些常见的错误:
1、no_perms Private mode enable, only admin can publish this module
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npm.taobao.org/ng-antd-cli -
 [no_perms] Private mode enable, only admin can publish this module
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

这是因为镜像设置成淘宝镜像了,设置回来即可:

npm config set registry=http://registry.npmjs.org

如果有需要改回淘宝镜像,再次修改为npm的淘宝链接:

npm config set registry=http://registry.npm.taobao.org

如果需要查看当前的镜像设置可以使用

npm config get registry
2、npm publish failed put 500 unexpected status code 401

一般是没有登录,重新登录一下 npm login 即可

3、npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?

包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名

4、you must verify your email before publishing a new package

邮箱未验证,去官网验证一下邮箱

5、npm ERR! 403 403 Forbidden - PUT registry.npmjs.org/包名字 - You cannot publish over the previously published versions: 1.0.0.

原因:要发布的版本和原来的版本号相同
修改:要修改当前版本号

6、npm版本过低

处理:npm install -g npm update

7、可能权限原因

处理:npm publish --access=public

8、文件夹名和package.json里的'name'属性一样时也无法发布

处理:将文件夹名或'name'改成不一致即可

9、如果之前删除过npm市场同名的包,重新发布会有一定的时间限禁(目前是24小时后)
上一篇下一篇

猜你喜欢

热点阅读