使用nexus搭建npm私服的过程就不多说了,网上有很多教程
这里说一下遇到的一个大坑,现象是当使用npm install安装包的时候,会有类似如下报错
npm ERR! code E404
npm ERR! 404 Not Found - GET http://npm.hello.cn/repository/npm-group/@nodelib%2ffs.stat
npm ERR! 404
npm ERR! 404 '@nodelib/fs.stat@2.0.3' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'uni-client'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-07-10T08_33_06_247Z-debug.log
看报错是因为仓库中找不到相关包,可是按道理来说,如果私有仓库中找不到包应该就会去配置的代理仓库拉取,代理仓库我配置的是淘宝源:https://registry.npm.taobao.org
,难道是淘宝仓库中也没有?我手动将仓库地址改成淘宝地址:npm config set registry https://registry.npm.taobao.org
,然后执行npm install
,安装是没有问题的
原配置
<VirtualHost *:80>
ServerName npm.hello.cn
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
修改后
<VirtualHost *:80>
ServerName npm.hello.cn
AllowEncodedSlashes NoDecode
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
其中httpd < 2.0.52
时配置:AllowEncodedSlashes On
httpd > 2.0.52
时配置:AllowEncodedSlashes NoDecode
然后重启httpd,结果npm install
就没问题了。。。
我又测试了一下,如果前端使用nginx代理的话,是没有这种问题的
我没有用apache和nginx,直接在自己本地搭建的nexus,我创建了三个仓库,npm-hosted、npm-proxy(指向的淘宝镜像地址)、npm-group(配置的是npm-hosted\npm-proxy),我现在遇到的问题是:通过npm下载包时,只能下载本地的包,不能下载远端的包(如:vue、react等),能方便加一下qq吗,1194927471 谢谢
可以,我博客中有QQ号,有空的时候一起研究一下
请问下你QQ号是多少呀?
21108858
这个文件httpd在哪儿修改
示例中用的是apache,主流的nginx,apache都一样,只要代理到后端的端口就行。他们对应的配置文件中去改