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

В моей ситуации это помогло:

  1. очистить кеш с

    npm cache clean --force
    
  2. установите последнюю версию npm глобально как admin:

    npm install -g [email protected] --force
    
  3. очистить кеш с

    npm cache clean --force
    
  4. Попробуйте установить компонент еще раз.

Надеюсь, это исправить вашу проблему. Если это не поможет, попробуйте некоторое время отключить антивирусную программу и повторите попытку.

Ответ 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 " на вкладке "Общие".

меры

  1. Перейдите в файл package.json.
  2. Щелкните правой кнопкой мыши и выберите "Свойства".
  3. На вкладке "Общие" в разделе "Атрибуты" снимите флажок " Только чтение".
  4. Нажмите " Применить", чтобы применить изменения.

Ответ 7

У меня была эта проблема несколько раз только в Windows, я стараюсь их в порядке, как правило.

  1. npm install --force
  2. Проверьте, установлено ли node_modules только для чтения и удаляется, если это
  3. Удалить node_modules/
  4. Проверьте, открыт ли какой-либо редактор, который может иметь доступ к корневой папке проекта
  5. Перезагружать :(

Обычно пытается установить 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

Я сделал следующее:

  1. Обновлен npm до последней версии: npm install -g [email protected]
  2. удалил папку npm-cache из: c: /users/[username]/AppData/Roaming/npm-cache
  3. npm cache clean --force ли кеш: очистить кеш npm cache clean --force
  4. Запустите npm install.

Ответ 19

Просто удалите папку пакета с пути глобальных пакетов npm. затем переустановите пакет. Обратите внимание, что пакеты глобально установлены в: C:\Users\your-name\AppData\Roaming\npm\node_modules

Ответ 20

После нескольких часов исследования использование командной строки в качестве администратора сделало для меня чудо.

Ответ 21

У меня была та же проблема в Windows 10. Просто выполните следующие действия:

  • Откройте cmd как администратор.

  • установить обновленный пакет npm.

  • нпм я -g нпм

  • npm init --yes

Ответ 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 теперь этого нет! Просто используйте пряжу.