【问题标题】:Jenkins NodeJS-PluginJenkins NodeJS 插件
【发布时间】:2014-10-02 06:01:25
【问题描述】:

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

Jenkins integration with Grunt

但我无法连接到 registry.npmjs.org/throw Jenkins。 我在 Plugins->Advanced 中设置了 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'

我现在该怎么办?

【问题讨论】:

    标签: jenkins


    【解决方案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 用户所有,并且标记为可执行。

    重新运行 Jenkins 作业,这一次它应该利用上面的代理设置并能够下载它需要的东西。这些设置模仿了 ~/.npmrc 中的设置,更多信息可以在这里找到:

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

    希望对您有所帮助。如果有人有更好、更正确的解决方案,我也很想听听。

    【讨论】:

      【解决方案2】:

      你可以设置NPM使用代理,你可能需要sudo

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

      【讨论】:

        猜你喜欢
        • 2013-08-15
        • 1970-01-01
        • 2019-09-01
        • 2014-12-01
        • 2023-03-29
        • 2018-07-24
        • 2014-07-07
        • 2016-06-08
        • 2020-05-10
        相关资源
        最近更新 更多