npm ERR! Ошибка: EPERM: операция не разрешена, переименование
Когда я выполняю "npm install", я получаю эту ошибку
нпм ERR! Ошибка: EPERM: операция не разрешена, переименуйте C:\projects ******\node_modules\реагировать-async-script '->' C:\projects *******\node_modules.react-async-script.УДАЛЯТЬ'
- Я запускаю cmd как администратор
- Я запускал npm кеш чистый
- Я убедился, что все другие приложения не имеют ничего, связанного с open_modeules open
Ответы
Ответ 1
В моей ситуации это помогло:
-
очистить кеш с
npm cache clean --force
-
установите последнюю версию npm глобально как admin:
npm install -g [email protected] --force
-
очистить кеш с
npm cache clean --force
-
Попробуйте установить компонент еще раз.
Надеюсь, это исправить вашу проблему. Если это не поможет, попробуйте некоторое время отключить антивирусную программу и повторите попытку.
Ответ 2
Я получил его, работая при попытке установки npm с помощью параметра force для извлечения удаленных ресурсов, даже если локальная копия существует на диске. Попробуйте запустить
npm install --force
Обновлено Для некоторых из моих коллег это решение не работало. Но мы пытались использовать пряжу вместо npm. Он работает (быстрее) без каких-либо проблем все время
yarn install [package-name]
Ответ 3
Не package.json
, но по какой-то причине мой node_modules/
стал node_modules/
только для чтения. Сброс, который исправил это.
Ответ 4
Если вы хотите избежать опции --force
(которая всегда лучше), я рекомендую убедиться, что вы прекратили запускать проект, так как это обычно является основной причиной блокировки файлов почти в 90% случаев. видел
Я предлагаю следующие шаги в этом порядке:
1- В Angular с остановкой ng s
и в React с остановкой npm start
обычно решает эту проблему, потому что обычно эта ошибка возникает, если сервер разработки запускает проект, так как он блокирует некоторые файлы, и тогда npm не может обновить их, вызывая эту ошибку
2- Если вышеприведенное не работает, попробуйте закрыть редактор кода, в котором открыто рабочее пространство (возможно, он блокировал некоторые файлы или что-то в этом роде)
Итак, попробуйте закрыть редактор кода и запустить:
npm install
3- Если все еще это не работает, то, возможно, вы можете попробовать опцию --force
npm install --force
Ответ 5
Я получил ту же ошибку, и, согласно https://github.com/Medium/phantomjs/issues/19, это может быть вызвано вашим антивирусным программным обеспечением. Я отключил шахту на время установки и выполнил "npm install" на cmd в качестве администратора, и он сработал. Надеюсь это поможет.
Ответ 6
Я получал то же самое. Я ничего не нашел, но меня поразило то, что наши виртуальные машины, как правило, меняют файлы в состояние только для чтения. Поэтому я открыл свойства файла package.json
и снял флажок " Read-only
" на вкладке "Общие".
меры
- Перейдите в файл
package.json
. - Щелкните правой кнопкой мыши и выберите "Свойства".
- На вкладке "Общие" в разделе "Атрибуты" снимите флажок " Только чтение".
- Нажмите " Применить", чтобы применить изменения.
Ответ 7
У меня была эта проблема несколько раз только в Windows, я стараюсь их в порядке, как правило.
- npm install --force
- Проверьте, установлено ли node_modules только для чтения и удаляется, если это
- Удалить node_modules/
- Проверьте, открыт ли какой-либо редактор, который может иметь доступ к корневой папке проекта
- Перезагружать :(
Обычно пытается установить npm после того, как один из этих шагов разрешит его.
Ответ 8
В моем случае что-то заблокировалось, и быстрая перезагрузка разрешила это.
Ответ 9
Это типичная ошибка, вызванная антивирусом. Существует один способ для таких случаев, как мой, где я не могу отключить A/V (Политика компании).
Вы должны изменить polyfills.js
внутри Npm
пакета:
[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js
Посмотрите на это утверждение:
if (process.platform === "win32") {
Внутри этого утверждения есть таймаут, делающий повторную попытку в случае ошибки. Проблема в том, что в некоторых случаях, после таймаута, файл по-прежнему заблокирован A/V. Решение избавляет от тайм-аута и позволяет этому утверждению в цикле. Изменение с предыдущим кодом прокомментировало:
if (platform === "win32") {
fs.rename = (function (fs$rename) { return function (from, to, cb) {
var start = Date.now()
var backoff = 0;
fs$rename(from, to, function CB (er) {
if (er
&& (er.code === "EACCES" || er.code === "EPERM")
/*&& Date.now() - start < 60000*/) {
console.log("Retrying rename file: " + from + " <> " + to)
fs$rename(from, to, CB);
/*setTimeout(function() {
fs.stat(to, function (stater, st) {
if (stater && stater.code === "ENOENT")
fs$rename(from, to, CB);
else
cb(er)
})
}, backoff)*/
if (backoff < 100)
backoff += 10;
return;
}
if (cb) cb(er)
})
}})(fs.rename)
}
Ответ 10
Как отметил Мартин Керн в комментарии, закрытие Visual Studio решило эти проблемы с разрешениями npm для меня. Очевидно, VS иногда блокирует файлы в node_modules
.
Ответ 11
У меня была такая же проблема после обновления до npm до 5.4.2, npm начало давать ту же ошибку для большинства команд npm. В некотором решении предлагается запустить его с -no-optional:
это не всегда срабатывало.
другой предложил понизить, я не хотел понижать рейтинг.
Я подозревал, что возникла проблема с установкой, но не уверен, что это такое.
поэтому я обновляю свой npm:
npm i -g npm
и с тех пор отлично справился.
Ответ 12
npm провалилась для меня в scandir
:
npm install -g webpack
... что может быть вызвано попытками "изменить" файлы, которые потенциально блокируются другими процессами, как упоминалось здесь, и несколькими другими потоками github. После принудительной очистки кеша, проверки кеша, работы с правами администратора, отключения AV и т.д., Решение, которое на самом деле работало для меня, заключалось в закрытии любой вещи, которая могла бы помещать блокировку файлов (т.е. перезагрузка моего компьютера).
Надеюсь, это поможет кому-то бороться.
Ответ 13
У меня такая же проблема. Причиной ошибки являются неподдерживаемые символы в пути к файлу. Заменена кириллица на английском языке - это помогло.
Ответ 14
Для некоторых может возникнуть проблема с папкой AppRoot\npm. Иногда папка AppRoot помечена как сетевая, и, таким образом, Antivirus блокирует материал. Следуйте приведенной ниже ссылке для полного решения.
https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/
Надеюсь, это поможет.
Ответ 15
Откройте командную строку в качестве администратора и перейдите к местоположению проекта, а затем запустите npm install. это сработало для меня.
Ответ 16
Попытка переименовать файл в другое имя файла, которое уже существует, может вызвать ошибку EPERM
в Windows.
Ответ 17
Мой ответ - сначала npm cache clean --force
. Затем запустите npm install -g [email protected]
чтобы установить версию npm 5.3.0. для меня эта версия npm работает без проблем.
Ответ 18
Я сделал следующее:
- Обновлен npm до последней версии:
npm install -g [email protected]
- удалил папку npm-cache из:
c: /users/[username]/AppData/Roaming/npm-cache
-
npm cache clean --force
ли кеш: очистить кеш npm cache clean --force
- Запустите
npm install
.
Ответ 19
Просто удалите папку пакета с пути глобальных пакетов npm. затем переустановите пакет. Обратите внимание, что пакеты глобально установлены в: C:\Users\your-name\AppData\Roaming\npm\node_modules
Ответ 20
После нескольких часов исследования использование командной строки в качестве администратора сделало для меня чудо.
Ответ 21
У меня была та же проблема в Windows 10. Просто выполните следующие действия:
Ответ 22
Указанные решения не работают для меня.
Я понял, что я обслуживаю приложение (угловое приложение) в отдельном терминале. Таким образом, файл уже использовался. Я прекратил процесс подачи. И проблема исчезла.
Ответ 23
Запуск команд от имени Super Admin работал для меня. Повторите попытку после закрытия редактора, в котором вы работаете.
Ответ 24
Я перемонтировал свои оконные диски с флагом метаданных и сразу же помог: https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
после этого больше не нужно использовать sudo для команд npm, поскольку метаданные контролируют права доступа к файлам и каталогам Linux и Linux.
Ответ 25
Я боролся с этим тоже. Я наконец-то решение, которое отлично работает, если вы используете nvm:
cd ~/.nvm/versions/node/{your node version}/lib/
npm install npm
и что это.
Ответ 26
Это может быть связано с вашим антивирусом. Если вы не можете отключить AV, то вы можете попробовать изменить место глобальной установки NPM, поскольку узел устанавливается в каталог APPDATA, который активно контролируется AV-движками. Попробуйте выполнить следующее commands-
Конфигурационный префикс npm "ВАШЕ ТАМОЖЕННОЕ МЕСТО"
Кэш набора настроек npm "ВАШЕ ТАМОЖЕННОЕ РАСПОЛОЖЕНИЕ"
Удалите каталог node_modules и снова установите свой пакет.
Ответ 27
В моем случае настройка typescript.disableAutomaticTypeAcquisition
в Visual Studio Code на true
, похоже, помогла.
Ответ 28
В моем случае работает npm: v6.9.0
& node: v10.16.1
на Windows
мне пришлось запускать свой CLI (git bash) от имени администратора. Затем пакеты были установлены без каких-либо предупреждений/ошибок
Ответ 29
Для меня я просто закрыл редактор кода (VS Code) и затем выполнил ту же команду. И это решает проблему для меня.
Ответ 30
Я сталкиваюсь с этой проблемой несколько раз. Оказывается, это не имеет никакого отношения к разрешениям, кешу и т.д. Сообщение об ошибке вводит в заблуждение. Для узла v 6.x вы увидите более подробный стек ошибок, но не после 7.x Для меня и моих колледжей проблема заключается в функции тайм-аута. По сути, установка пакета еще не завершена (т.е. Удерживается каталог), когда npm пытается удалить его. в узле 6.x вы можете видеть, что в finalize.js теперь этого нет! Просто используйте пряжу.