发布NPM包

发布NPM包

一,前言

 我们都会经常使用npm来下载别人的模块或者说包,那么我们如何将自己写的模块上传到npm,分享给别人使用呢??

二,发布包

2.1 注册账号

  • 进入网址: https://www.npmjs.com 注册一个npm账号。
  • 进邮箱验证npm账号(否则发布会报错)

2.2 准备发布的包

1 export { default as base64ToFileOrBlob } from './base64ToFileOrBlob';
2 export { default as saveFileToBlob } from './saveFileToBlob';
3 export { default as saveFileToLink } from './saveFileToLink';

   可参考:纯前端下载pdf链接文件,而不是打开预览的解决方案

2.3 发布包

第一步:登录

第一次输入如下命令:

npm adduser

输入一下命令:

1 npm login

会提示输入用户名密码以及邮箱等,这些都是你在npm注册的账号。

第二步:查看用户

1 npm whoami

检查您的用户名是否已添加到注册表https://npmjs.com/~username

第三步:发布包

在项目根目录下运行如下命令

1 npm publish

如果出现版本号,则代表发布成功。

如果需要发布新版本的话,更新版本号重新发布即可。

2.4 删除包

这里要说一点,取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为;可能会影响正在使用你包的人。

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

  • 使用命令npm unpublish xxx@1.1.1(包名@版本名)删除指定版本
  • 根据规范,只有在发包的24小时内才允许撤销发布的包( unpublish is only allowed with versions published in the last 24 hours),需要我们发邮件给官方来删除即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)
  • 例如我在撤销包后尝试再发布同一名称+同一版本的包

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

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

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

三,遇到的问题

3.1,遇到403

1 ...
2 npm ERR! publish Failed PUT 403
3 npm ERR! code E403
4 npm ERR! no_perms Private mode enable, only admin can publish this module:...
5 ...

解决办法

1,检查仓库是否被设成了淘宝镜像库

1 npm config get registry
https://registry.npm.taobao.org/

2,如是,则设回原仓库

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

3,再次发布

1 npm publish

4. 如发布成功,则再次将仓库地址设为淘宝镜像地址

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

 

posted @ 2020-01-02 13:45  jackson影琪  阅读(522)  评论(0编辑  收藏  举报