NPM前端代理集,但无法下载NPM软件包

Dav*_* W. 2 proxy node.js jenkins

我们正在使用Eirslett Maven前端插件来帮助以标准方式构建我们的NPM项目。该前端为我们处理安装和其他问题。另外,它允许我们的开发人员mvn package像使用其他Java / Maven项目一样进行构建。

这是在具有代理警告的本地计算机上构建的,但不会在我们的Jenkins服务器上构建。

我已经$HOME/.npmrc配置无一不http_proxyhttps_proxy环境变量设置。但是,我仍然收到没有设置代理的错误。

$ set | grep "http.?_proxy"
http_proxy=http://proxy.xxxx.local:3128
https_proxy=https://proxy.xxxx.local:3128

$ cat $HOME/.npmrc
registry = http://registry.npmjs.org/
proxy = http://proxy.xxxx.local:3128/
https-proxy = https://proxy.xxxx.local:3128/
strict = false
ca = null


$ mvn clean package
[...]
[INFO] --- frontend-maven-plugin:0.0.24:install-node-and-npm (install node and npm) @ ihcm-config-tool ---
[INFO] Installing node version v0.12.2
[INFO] Creating temporary directory /opt/tomcat/jenkins_home/jobs/ihcm-config-tool-trunk/workspace/node_tmp
[INFO] Downloading Node.js from \\  
       http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz \\  
       to /opt/tomcat/jenkins_home/jobs/ihcm-config-tool-trunk/workspace/node_tmp/node.tar.gz
[INFO] No proxy was configured, downloading directly
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.968 s
[INFO] Finished at: 2016-07-18T11:53:39-05:00
[INFO] Final Memory: 15M/303M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal \  
        com.github.eirslett:frontend-maven-plugin:0.0.24:install-node-and-npm \  
(install node and npm) on project ihcm-config-tool: Could not \   
download Node.js: Could not download \  
http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz: \  
Connect to nodejs.org:80 [nodejs.org/104.20.23.46, \
nodejs.org/104.20.22.46] failed: Connection refused -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我可以将http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz下载到我的机器上。我认为错误可能是代理,但我可能是错误的。我应该找什么吗?

Dav*_* W. 6

找到了问题。

Eirslett Maven前端插件未使用$http_proxy$HOME/.npmrc文件中的代理设置。相反,我不得不将代理设置放入$HOME/.m2/settings.xml文件中。

settings.xml使用添加的代理设置创建了文件的特殊版本(以确保没有影响其他项目的情况)。我创建了一个$HOME/.m2/settings.proxy.xml,然后通过调用了Maven mvn -s $HOME/.m2/settings.proxy.xml

我们使用Artifactory,它有自己的代理设置。我们已将NPM配置为使用Artifactory服务器进行下载。然而,Eirslett的Maven插件前端也可以安装的NodeJS也和Artifactory的不能设置为主页的NodeJS的。

我们希望Eirslett的Maven插件前端安装的NodeJS如果它尚未安装。这样,新开发人员就可以mvn package像运行我们所有其他项目一样运行该项目。幸运的是,开发人员的计算机不需要代理。但是,我们的Jenkins服务器位于公司内部防火墙之后,需要代理设置。

  • 您能否分享您使用 npm 代理创建的 settings.proxy.xml 文件,因为我也面临同样的问题。 (3认同)