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

时间:2015-04-09 16:58:56

标签: windows node.js npm child-process

我试图在不同的子进程中安装多个包。并且所有包都有一些共同的依赖(在我的情况下是browserify)。

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失败并显示日志

    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\0.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\0.9.0\package\package.json'
    npm ERR!     at Error (native)
    npm ERR!  { [Error: EPERM, rename 'C:\Users\Artem\AppData\Roaming\npm-cache\acorn\0.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

2 个答案:

答案 0 :(得分:1)

适用于npm 2.9.1

尝试升级你的npm

npm install npm@latest -g

答案 1 :(得分:1)

这似乎是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