verdaccio内网搭建npm私服

2020-12-30  本文已影响0人  木子人青_shine

前提:多个项目都需要用到相同的组件,内网开发无法直接使用npm来共享资源。

在网上看了很多资料决定使用verdaccio来搭建一个内网的npm私服,具体操作步骤很简单,网上有很多教程也说的很详细,下面是一教程的些链接

https://juejin.cn/post/6844903840521650189

https://juejin.cn/post/6875502804618706952

虽然搭建过程很简单,但是要想应用到项目中我遇到了很多问题:

1.npm源代理问题

虽然内网直接修改了 npm的源为本地localhost,但是verdaccio里面有一个代理配置,如果在本地服务器没有找到 会继续去npm源查找资源,这样内网环境下会直接报错。我是直接把config.yaml文件中的代理给注释掉了,简单粗暴的解决了问题

2.发布问题

发布的时候注意,版本不能相同

3.包安装问题

当我在项目中安装我发布的包的时候(npm

install test-module

--save),控制台一直会报错找不到要安装的依赖,明明我是安装的我发布的指定的包,里面没有任何依赖,就是一段简单简单的console。结果发现当我们在npm

install的时候无论你是不是只是安装指定的包,都会根据package.json 和 package-lock.json

检查项目中已经存在的node_modules里面依赖。因为我正在开发的项目是两年前搭建的 然后一直在内网开发

每次安装新的插件都是只将新安装的那个包拷贝进来了,里面可能有其他的依赖没有被一起拷贝进来导致的。

解决上述问题:

1.把项目中的package.json文件放到外网 重新npm install一次,然后将新的node_modules拷贝进内网项目中

2.同样将package.json

拷贝到外网重新npm install ,需要先切换npm源地址到本地也就是外网使用verdaccio搭建的npm私服环境。只有这样,在npm

install的时候会将包缓存到本地npm环境,一般在C:/用户/User/AppData/Roaming/verdaccio/storage目录中,然后将storage目录拷贝到内网环境同样目录中

,这样在项目中只需要npm install 就可以了

写的不太好,可能会有错别字或不太清楚,请包容

上一篇 下一篇

猜你喜欢

热点阅读