npm发布公共包的流程和踩坑

首先说一下npm私有仓库npm公有仓库
为什么要搭建自己或者自己企业的npm仓库?

在日常开发中,开发的项目越来越多,可复用的组件也越来越多。如果不搭建自己的npm仓库,在别的项目开发中发现可复用的组件,还需要往回找以前开发的项目,将组件复制过来,如果组件耦合比较严重,还需要对组件进行修改。

建立自己的npm仓库,可以i在开发中对自己的组件降低代码依赖度,然后将自己的组件发布到npm上,以后需要用到该组件的时候直接npm install 一下你的组件就行了,节约了很多开发经历和时间。

许多企业有搭建自己私有npm仓库的需求,用大白话来讲,就是私有仓库别人访问不到,自己的代码不开源,仅供自己企业使用。

企业的前端开发人员将npm仓库换成自己的ip地址,就可以完成npm install自己上传到私有库的组件。你会问,如果仓库换成自己的ip地址,是不是就install不到https://registry.npmjs.org/或者淘宝镜像上的包呢,其实不是,在安装依赖时npm会先在私有仓库上寻找是否存在所需包,如果没有,会往上找,即在https://registry.npmjs.org/或者淘宝镜像寻找且安装。(以后更新的时候补图)

目前搭建私有仓库的方法有: Sinopiaverdaccio,Sinopia已经很久没有迭代了,bug也比较多,所以一般用后者。

私有库的搭建方法自己还在踩坑,感觉坑比公有仓库多,踩完坑再发布一篇文章。

现在来讲如何搭建npm公有库。

先来介绍nrm工具(一个神仙工具)

你是不是在开发中,遇到过这种问题。将自己的npm换成淘宝镜像源,但是有时候淘宝镜像上没有自己安装的包,这时候你又要把仓库切换回原npm仓库,安装完后,为了以后安装速度快,又切换成淘宝。确实很麻烦。

nrm是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换。

首先全局安装nrm:

npm install -g nrm

安装完后可以通过 nrm ls查看当前有的仓库

nrm ls

在这里插入图片描述
*号表示目前的使用仓库

使用nrm use name切换代码仓库,name时仓库的名字,如nrm use taobao 或则 nrm use npm

这里我们在npm官网上发布公有包,所以使用nrm use npm尽情切换。(注意:一定要切换哦,因为目前大多数用户都用的淘宝镜像,不切换的话,发包的时候会报权限呀,冲突呀的警告⚠

然后的步骤是注册一个账号。

你可以在cmd中用npm adduser注册一个npm账号。网上很多人说会有各种问题,但是我还没有遇到。
值得注意的是:npm adduser在输入密码时是不显示你的密码的,不要以为自己cmd卡死了,或者键盘坏了。

或者你还可以在https://www.npmjs.com/上进行注册账号,就省了很多报错。注册完后会给你发两封邮件,一个是验证邮箱的,**一定要验证!!!**不然npm publish的时候又会报错。

注册完账号后,你就可以进入你想发布包的目录了。如下图所示:
在这里插入图片描述
在此目录下打开命令行窗口,执行npm login,输入用户名, 密码,邮箱进行登录。(同样,这里的密码也是不会显示的,cmd或者powershell没有卡死
在这里插入图片描述
如果是淘宝镜像登录,后面会黄线框出的会出现淘宝的镜像地址,这里注意检查一下是不是我黄线框出的地址。

然后执行npm init初始化一下项目,如果你的项目已经初始化,可跳过这步。

注意这里踩过的坑:

  • 首先在取名字的时候,有的人会以 @前缀/包名的形式取名,因为这样取名发布的包,npm会当成私有包,发布私有包的这种服务是要加钱的。(都可以,但是要加钱)。如果要这样取名的话,后续npm publish 的时候需要变成 npm publish --access public

  • 取名字的时候不能大写,用连词符。

  • 包重名。自己区的包名不能与npm上已有的包重名。所以再取名字之前可以在npm上搜索一下。确定没有重名就行,不然会报冲突的错误。
    在这里插入图片描述

  • 版本号。如果包发布失败了,建议还是改一下版本号再发布,不改版本号可能会有冲突。

上述工作做完后npm publish就可以发包了。发包成功后是这样的。有时候报E403,E404的错误,可以回头看看我的文章注意的点。我有遗漏的话,欢迎补充。
在这里插入图片描述
在这里插入图片描述
发布成功后还可以收到npm的一封邮件。
以后如果需要使用自己的组件,直接npm install 包名 就好啦。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值