【问题标题】:Multiple npm install fails (EPERM error)多个 npm 安装失败(EPERM 错误)
【发布时间】:2015-06-15 04:17:53
【问题描述】:

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

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

运行.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

【问题讨论】:

  • 最后一个错误行是答案
  • @Roecrew,不过没有帮助
  • 尝试将npm升级到最新版本npm install npm@latest -g
  • 好吧,所提出的解决方案都不适合我,但找到了另一个解决方案:stackoverflow.com/a/51092497/1001395

标签: windows node.js npm child-process


【解决方案1】:

适用于 npm 2.9.1

试着升级你的 npm

npm install npm@latest -g

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 只是重新运行安装命令足够多次,有时也似乎“避免”了竞争条件。许多帖子建议禁用 AV,但对于某些人来说,这不是一个选项......在这些情况下 --force 标志可能是一个好主意
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    相关资源
    最近更新 更多