Сбой установки нескольких npm (ошибка EPERM)

Я пытаюсь установить несколько пакетов в разные дочерние процессы. И все пакеты имеют некоторую общую зависимость (в моем случае браузер).

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


person Artem Svirskyi    schedule 09.04.2015    source источник
comment
Последняя строка ошибки содержит ответ   -  person Roecrew    schedule 09.04.2015
comment
@Roecrew, но это не помогло   -  person Artem Svirskyi    schedule 09.04.2015
comment
попробуйте обновить npm до последней версии npm install npm@latest -g   -  person Ammaroff    schedule 28.05.2015
comment
Ну, ни одно из предложенных решений не сработало для меня, но нашел другое: stackoverflow.com/a/51092497/1001395   -  person Fernando Gonzalez Sanchez    schedule 29.06.2018


Ответы (2)


Отлично работает с npm 2.9.1

Просто попробуйте обновить npm

npm install npm@latest -g

person Ammaroff    schedule 28.05.2015

Похоже, это хитрая ошибка в 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

person JustAMartin    schedule 02.11.2015
comment
Просто повторный запуск команды установки достаточное количество раз также помогает избежать состояния гонки. Во многих сообщениях предлагается отключить AV, но для некоторых это не вариант... --force flag может быть хорошей идеей в таких случаях. - person Coruscate5; 10.08.2017