Jenkins NodeJS-Plugin

时间:2014-03-06 15:54:20

标签: jenkins

您好我尝试在jenkins中执行nodejs作业:

Jenkins integration with Grunt

但我无法连接到registry.npmjs.org/抛出Jenkins。 我在插件中设置了Jenkins中的代理 - >高级但我得到了这个错误:

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/TempDemo/workspace
$ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/recent_node_0.11.11_/bin/npm install -g grunt-cli@~0.1.0
npm http GET https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/grunt-cli
npm ERR! Error: connect ECONNREFUSED
npm ERR!     at exports._errnoException (util.js:682:11)
npm ERR!     at Object.afterConnect [as oncomplete] (net.js:947:19)
npm ERR!  { [Error: connect ECONNREFUSED]
npm ERR!   stack: 'Error: connect ECONNREFUSED\n    at exports._errnoException (util.js:682:11)\n    at Object.afterConnect [as oncomplete] (net.js:947:19)',
npm ERR!   code: 'ECONNREFUSED',
npm ERR!   errno: 'ECONNREFUSED',
npm ERR!   syscall: 'connect' }
npm ERR! 
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly.  See: 'npm help config'

我现在该怎么办?

2 个答案:

答案 0 :(得分:1)

我只有一个权宜之计的解决方案,因为我无法找到有关配置插件以使用代理的任何信息。我在npm可执行文件周围创建了一个包装器,它在调用底层的npm脚本之前设置代理详细信息。步骤:

  1. 设置NodeJS安装,启动使用它的作业并获取失败(如上所述)。这应该在/ tools中留下一个Node安装文件夹。我看到的是" /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/recent_node_0.11.11 _"。

  2. 导航到此位置的/ bin文件夹。

  3. 重命名npm可执行文件链接:" mv npm npm-actual"

  4. 创建一个新的npm文件:touch npm

  5. 设置内容如下:

    \#!/bin/sh
    
    /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/recent_node_0.11.11_/bin/npm-actual config set proxy "<proxy url with optional credentials>"
    
    /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/recent_node_0.11.11_/bin/npm-actual config set https-proxy "<proxy url with optional credentials>"
    
    /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/recent_node_0.11.11_/bin/npm-actual "$@"
    
  6. 确保这个新的npm脚本归Jenkins用户所有,并且标记为可执行文件。

  7. 重新运行Jenkins作业,这次应该使用上面的代理设置并能够下载它需要的内容。这些设置模仿〜/ .npmrc中的设置,可在此处找到更多信息:

    http://jjasonclark.com/how-to-setup-node-behind-web-proxy

    希望有所帮助。如果有人有更好,更正确的解决方案,我也很乐意听到它。

答案 1 :(得分:1)

您可以将NPM设置为使用代理,您可能需要sudo

npm config set proxy http://yourproxy.com:80