原因:因为构建环境多,部分npm依赖国内无法访问,和git 偶尔会被墙,所以才生成本地npm服务器的想法,然后找到 verdaccio 和 sinopia可以满足我们现有的需求,所以记录一下自己搭建过程和遇到的坑;这里说一下为什么不使用sinopia 因为,更新时间和内部的坑;
目前遇到的坑:
无法安装带@符号的包比如:@antv/g6 (解决方案 修改var encode = function(thing) {return encodeURIComponent(thing).replace(/^%40/, '@') ;};)- 无法安装带/的包 等;
后面还遇到各种问题就放弃了;
verdaccio 的安装:
-
先安装node 这里就不讲怎么安装,并做软连接到全局;
-
安装
verdaccionpm install -g verdaccio --unsafe-perm -
`建立软连接
verdaccio`
ln -s /usr/local/node/lib/node_modules/verdaccio/bin/verdaccio /usr/local/bin/verdaccio -
修改
config.yamlvi /root/.config/verdaccio/config.yaml listen: 0.0.0.0:4873 #需要对外暴露端口 -
启动
verdaccioverdaccio
verdaccio 已经安装成功;
接下来安装pm2:
-
npm install -g pm2 --unsafe-perm -
#建立pm2软连接 ln -s /usr/local/node/lib/node_modules/pm2 /usr/local/bin/pm2 -
#使用pm2启动verdaccio pm2 start verdaccio
可以通过客户端进行访问 http://xxx.xxx.xxx.xxx:4873,如果不能访问请检查时候将 4873端口暴露,或者将防火墙是否关闭;