私有npm如何发布和使用

99 阅读3分钟

业务背景

考虑到前端项目众多(十多个微服务/微项目)且项目之间存在很多UI界面和功能一致的页面,故把这些相同的页面都封装在组件库wx-components,通用的方法包括通用的请求都封装在wx-utils,把项目打包发布到npm, 然后在各个微服务安装使用。

如何发布项目到私有仓库

私有仓库地址:http://192.168.1.223:4873/

如何搭建npm私有仓库,可参考 使用verdaccio 搭建npm私有仓库

1.安装nrm来管理自己的npm代理,nrm可快速修改、切换、新增npm镜像地址

1.1 安装nrm

npm install -g nrm

1.2 添加镜像地址和别名

nrm add crmnpm http://192.168.1.223:4873/

crmnpm是我为私有npm起的别名,自己取一个喜欢的就行,添加之后使用 nrm ls 查看所有镜像源地址,crmnpm就是刚新增的,如图:

nrm.png

如果想在私有npm上下载包的话,可以用 nrm use xxx 切换镜像源,如:执行 nrm use crmnpm 后镜像切换成私服地址了

nrmuse.png

2.发布包到私有仓库

要在私有仓库发布包要先注册或登录账号。如果没有账号,通过输入命令 npm adduser , 然后依次输入用户名,密码、邮箱即可创建完毕; 如果已有账号,通过输入命令 npm login,然后依次输入用户名,密码即可登录,然后进入我们需要上传的代码目录,执行命令发布即可,(注:先把源切换到私有仓库,否则输入命令时就要指定仓库地址 npm adduser --registry http://192.168.1.223:4873/

发布成功后打开私服地址,可看到发布成功的包,如图:

私服.png

发布之后想要删除,需要指定包名和删除的版本号,执行命令 npm unpublish xxx即可 如:npm unpublish wx-utils@1.0.0 删除wx-utils的1.0.0版本的包

2.1 调试公共库 wx-utils 和 wx-components

npm link

用wx-utils和通用版项目为例,在通用版项目里面安装了wx-utils,当我们在wx-utils修改了代码,但是希望不发布到npm就能在通用版项目看到修改后的效果,可以用npm link 添加软连接的形式实现调试:

1)在wx-utils 项目根目录执行 npm link,生成一个全局的wx-utils软连接(每次修改完都要先执行npm run build

2)再在通用版项目执行 npm link wx-utils,然后启动项目即可

切记:调试完成后要npm unlink, 以免发生未知错误。通用版项目执行 npm unlink wx-utils,wx-utils项目执行npm unlink

2.2 发布 wx-utils 和 wx-components

在公共库wx-utils和wx-components修改了代码,调试没问题之后提交代码,然后执行 npm run build , 再执行发布命令 npm publish(根据当前镜像地址看要不要指定私服地址,如果当前指向的镜像就是私服地址,则直接npm publish, 如果不是,就需要指定私服地址 --registry http://192.168.1.223:4873/ )

3.安装私有仓库里面的包 wx-utils 和 wx-components

方法一:

切换镜像到私有仓库,直接npm i wx-utils wx-components

方式二:

指定私有仓库地址安装 npm i wx-utils wx-components --registry http://192.168.1.223:4873/