多个 npm 安装失败(EPERM 错误)

Multiple npm install fails (EPERM error)

我正在尝试在不同的子进程中安装多个包。所有的包都有一些共同的依赖(在我的例子中是浏览器)。

example
|
|_pkg1
|   |_browserify
|
|_pkg2
|   |_browserify
|
|_pkg3
|   |_browserify
|
|_run.js

run.js:

var packages = ['pkg1', 'pkg2', 'pkg3'];

packages.forEach(function(pkg){
    exec('npm install ./' + pkg);
});

并且 node run.js 失败并显示 log

    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" "i
    nstall" "./pkg3"
    npm ERR! node v0.12.2
    npm ERR! npm  v2.7.4
    npm ERR! path C:\Users\Artem\AppData\Roaming\npm-cache\acorn[=12=].9.0\package\package.json
    npm ERR! code EPERM
    npm ERR! errno -4048

    npm ERR! Error: EPERM, rename 'C:\Users\Artem\AppData\Roaming\npm-cache\acorn[=12=].9.0\package\package.json'
    npm ERR!     at Error (native)
    npm ERR!  { [Error: EPERM, rename 'C:\Users\Artem\AppData\Roaming\npm-cache\acorn[=12=].9.0\package\package.json']
    npm ERR!   errno: -4048,
    npm ERR!   code: 'EPERM',
    npm ERR!   path: 'C:\Users\Artem\AppData\Roaming\npm-cache\acorn\0.9.0\package\package.json',
    npm ERR!   parent: 'syntax-error' }
    npm ERR!
    npm ERR! Please try running this command again as root/Administrator.

示例:https://github.com/SakerONE/multiple-npm-install

适用于 npm 2.9.1

尝试升级你的 npm

npm install npm@latest -g

这似乎是 npm 中的一个棘手错误,很可能是编写相同内容的并行任务的竞争条件 package.json。

您可以使用 --force 标志来避免缓存(但下载每个构建的所有依赖项可能会很慢)。或者等待 npm 团队实施永久修复。

在 Github 上观看的相关链接:

https://github.com/Microsoft/vso-agent-tasks/issues/323

https://github.com/npm/npm/issues/2500

https://github.com/npm/npm/issues/9696