npm - 如何在 Visual Studio Team Services 构建代理中正确运行 NPM 安装

标签 npm azure-devops

我在为 Visual Studio Team Services(以前称为 Visual Studio Online)中的自动build设置 NPM 任务时遇到问题。有两个问题:

  • 缓存锁定错误(如下所示)。
  • 它非常缓慢——十几个包裹需要 45 分钟以上。

  • 我添加了 --cache 参数,但这似乎没有帮助。
    npm install --dev --cache $(Agent.BuildDirectory)\b
    

    二进制文件夹似乎是缓存的正确位置,但老实说,我不确定。这里的一些文档:

    https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables#AgentVariables

    我很感激任何建议...

    当前配置:

    enter image description here

    构建控制台输出:
    Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.97.1\tasks\Npm\0.2.7
    ##[debug]check path : C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.97.1\tasks\Npm\0.2.7\task.json
    ##[debug]set resource file to: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.97.1\tasks\Npm\0.2.7\task.json
    ##[debug]system.culture=en-US
    ##[debug]check path : C:\Program Files\nodejs\npm.cmd
    ##[debug]npm=C:\Program Files\nodejs\npm.cmd
    ##[debug]cwd=C:\a\1\s\com.example.web
    ##[debug]path exists: C:\a\1\s\com.example.web
    ##[debug]command=install
    ##[debug]C:\Program Files\nodejs\npm.cmd arg: install
    ##[debug]arguments=--dev --cache C:\a\1\b
    ##[debug]C:\Program Files\nodejs\npm.cmd arg: --dev --cache C:\a\1\b
    ##[debug]exec tool: C:\Program Files\nodejs\npm.cmd
    ##[debug]Arguments:
    ##[debug]   install
    ##[debug]   --dev
    ##[debug]   --cache
    ##[debug]   C:\a\1\b
    [command]C:\Program Files\nodejs\npm.cmd install --dev --cache C:\a\1\b
    npm WARN deprecated graceful-fs@3.0.8: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
    npm WARN deprecated sf-lint@1.0.2: Use eslint-config-simplifield instead.
    npm WARN deprecated lodash@2.4.1: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
    npm WARN deprecated lodash@0.9.2: Grunt needs your help! See https://github.com/gruntjs/grunt/issues/1403.
    npm ERR! addLocal Could not install C:\a\1\s\com.example.web\@shinnn\eslint-config@>=0.0.5 <0.0.6\fixtures
    npm WARN deprecated phantomjs@2.1.3: Package renamed to phantomjs-prebuilt. Please update 'phantomjs' package references to 'phantomjs-prebuilt'
    npm WARN peerDependencies The peer dependency qunitjs@^1.14.0 included from karma-qunit will no
    npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
    npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
    npm WARN package.json Dependency 'mocha' exists in both dependencies and devDependencies, using 'mocha@*' from dependencies
    npm WARN package.json Dependency 'mocha' exists in both dependencies and devDependencies, using 'mocha@*' from dependencies
    npm ERR! addLocal Could not install C:\a\1\s\com.example.web\@shinnn\eslint-config@>=0.0.4 <0.0.5\fixtures
    > cson@1.6.2 preinstall C:\a\1\s\com.example.web\node_modules\gulp-uglify\node_modules\uglify-save-license\node_modules\grunt-replace\node_modules\applause\node_modules\cson
    > node ./cyclic.js
    npm WARN locking Error: EMFILE, open 'C:\a\1\b\_locks\strip-ansi-0bb45da2369f5768.lock.STALE.STALE.STALE'
    npm WARN locking     at Error (native)
    npm WARN locking  C:\a\1\b\_locks\strip-ansi-0bb45da2369f5768.lock failed { [Error: EMFILE, open 'C:\a\1\b\_locks\strip-ansi-0bb45da2369f5768.lock.STALE.STALE.STALE']
    npm WARN locking   errno: -4066,
    npm WARN locking   code: 'EMFILE',
    npm WARN locking   path: 'C:\\a\\1\\b\\_locks\\strip-ansi-0bb45da2369f5768.lock.STALE.STALE.STALE' }
    npm ERR! Windows_NT 6.3.9600
    npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--dev" "--cache" "C:\\a\\1\\b"
    npm ERR! node v0.12.7
    npm ERR! npm  v2.11.3
    2016-03-30T14:15:17.4509244Z npm ERR! Attempt to unlock C:\a\1\s\com.example.web\node_modules\gulp-imagemin\node_modules\imagemin-pngquant\node_modules\pngquant-bin\node_modules\compare-size\node_modules\ava\node_modules\chalk\node_modules\strip-ansi, which hasn't been locked
    npm ERR! 
    npm ERR! If you need help, you may report this error at:
    npm ERR!     <https://github.com/npm/npm/issues>
    npm WARN locking Error: EMFILE, open 'C:\a\1\b\_locks\ansi-styles-cedcc1e1e4774cd0.lock.STALE.STALE.STALE'
    npm WARN locking     at Error (native)
    npm WARN locking  C:\a\1\b\_locks\ansi-styles-cedcc1e1e4774cd0.lock failed { [Error: EMFILE, open 'C:\a\1\b\_locks\ansi-styles-cedcc1e1e4774cd0.lock.STALE.STALE.STALE']
    npm WARN locking   errno: -4066,
    npm WARN locking   code: 'EMFILE',
    npm WARN locking   path: 'C:\\a\\1\\b\\_locks\\ansi-styles-cedcc1e1e4774cd0.lock.STALE.STALE.STALE' }
    npm ERR! Windows_NT 6.3.9600
    npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--dev" "--cache" "C:\\a\\1\\b"
    npm ERR! node v0.12.7
    npm ERR! npm  v2.11.3
    npm ERR! Attempt to unlock C:\a\1\s\com.example.web\node_modules\gulp-imagemin\node_modules\imagemin-pngquant\node_modules\pngquant-bin\node_modules\compare-size\node_modules\ava\node_modules\chalk\node_modules\ansi-styles, which hasn't been locked
    npm ERR! 
    npm ERR! If you need help, you may report this error at:
    npm ERR!     <https://github.com/npm/npm/issues>
    npm WARN locking Error: EMFILE, open 'C:\a\1\b\_locks\has-ansi-819c7cca16ab7ac8.lock.STALE.STALE.STALE'
    npm WARN locking     at Error (native)
    2016-03-30T14:15:17.5709240Z npm WARN locking  C:\a\1\b\_locks\has-ansi-819c7cca16ab7ac8.lock failed { [Error: EMFILE, open 'C:\a\1\b\_locks\has-ansi-819c7cca16ab7ac8.lock.STALE.STALE.STALE']
    

    最佳答案

    重新安装 NPM 解决了我的问题:

    npm 安装 npm -g

    具体来说,我将圆圈任务添加到我的构建中:

    build image

    关于npm - 如何在 Visual Studio Team Services 构建代理中正确运行 NPM 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312543/

    相关文章:

    ios - 如何在 VSTS xcode 任务中启用 -allowProvisioningUpdates?

    azure - 使用模板在现有资源组中创建 Azure 容器注册表

    javascript - 如何发布双npm包(CommonJS + module)以便子模块统一导入

    node.js - 为什么 "npm install"会重写 package-lock.json?

    npm - 在 AWS Lambda 中运行 npm

    node.js - Vagrant、Puppet 和 nodejs 模块 : throwing error on npm module installation

    javascript - nodemon配置文件中的verbose是什么意思?

    visual-studio - 在Visual Studio Online中,是否可以设置触发器,以在成功完成拉取请求合并时更改将工作项分配给谁?

    node.js - 除非先删除 node_modules 文件夹,否则 NPM 安装无法正常工作?

    git - Azure DevOps 使用不同项目中另一个存储库的模块