业务背景
考虑到前端项目众多(十多个微服务/微项目)且项目之间存在很多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就是刚新增的,如图:
如果想在私有npm上下载包的话,可以用 nrm use xxx 切换镜像源,如:执行 nrm use crmnpm 后镜像切换成私服地址了
2.发布包到私有仓库
要在私有仓库发布包要先注册或登录账号。如果没有账号,通过输入命令 npm adduser , 然后依次输入用户名,密码、邮箱即可创建完毕; 如果已有账号,通过输入命令 npm login,然后依次输入用户名,密码即可登录,然后进入我们需要上传的代码目录,执行命令发布即可,(注:先把源切换到私有仓库,否则输入命令时就要指定仓库地址 npm adduser --registry http://192.168.1.223:4873/
发布成功后打开私服地址,可看到发布成功的包,如图:
发布之后想要删除,需要指定包名和删除的版本号,执行命令 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/