由于node-gyp,Jenkins构建在Windows Server 2012上失败,从命令行

时间:2015-08-28 13:43:24

标签: node.js windows jenkins node-gyp

我在Windows Server 2012 R2 Standard上设置了Jenkins版本。部分构建涉及使用npm从package.json安装:

的package.json

{
    "name": "localtest",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "directories": {
        "test": "test"
    },
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "repository": {
        "type": "git",
        "url": url_for_git_repo
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "extract-text-webpack-plugin": "^0.8.2",
        "jasmine-core": "^2.3.4",
        "karma": "^0.13.9",
        "karma-chrome-launcher": "^0.2.0",
        "karma-jasmine": "^0.3.6",
        "karma-mocha-reporter": "^1.1.1",
        "karma-phantomjs-launcher": "^0.2.1",
        "karma-sourcemap-loader": "^0.3.5",
        "karma-webpack": "^1.7.0",
        "node-sass": "^3.3.1",
        "phantomjs": "^1.9.18",
        "raw-loader": "^0.5.1",
        "sass-loader": "^2.0.1",
        "webpack": "^1.12.0"
    }
}

当我从命令行运行npm install时,它可以成功运行,但是当Jenkins构建尝试它时它会失败。可以在pastebin上查看完整的Jenkins输出。具体错误似乎是LINK : fatal error LNK1181: cannot open input file 'C:\Windows\system32\config\systemprofile\.node-gyp\0.12.7\Release\node.lib' [C:\bld\localtest\node_modules\karma\node_modules\socket.io\node_modules\engine.io\node_modules\ws\node_modules\utf-8-validate\build\validation.vcxproj]。文件夹Release实际上并不存在于我的系统上,因此除了安装从命令行(cmd.exe和git bash FWIW)成功完成之外,这似乎是一个明智的错误消息。

从命令行开始这个工作我认为问题与某个环境变量或其他环境变量有关,或者可能与路径有关,但是试图将命令行中的路径复制到Jenkins构建中我仍然没有有任何快乐。有没有人对我接下来会尝试什么有什么建议?

更新1:

我只是将Jenkins服务设置为在我的帐户下登录而不是系统帐户并重新启动它。构建成功完成。我认为这更有可能是某个环境变量中的问题。

更新2:

我为Jenkins安装了Environment Injector插件,以便我可以更新用户和系统用户之间不同的环境变量。这仍然导致了同样的错误。

1 个答案:

答案 0 :(得分:0)

这不是一个很好的答案,但这对我有用。

我最终做了

npm uninstall -g node-gyp

然后卸载nodejs。然后我重新安装了nodejs并运行

npm install -g node-gyp

Jenkins构建现在正在成功运行