web-dev-qa-db-ja.com

npm ERR!エラー:EPERM:操作は許可されていません。名前を変更してください

「npm install」を実行すると、このエラーが発生します

npm ERR! Error: EPERM: operation not permitted, rename C:\projects\******\node_modules\react-async-script' -> 'C:\projects\*******\node_modules\.react-async-script.DELETE'
  • 管理者としてcmdを実行しています
  • 前にnpm cache cleanを実行しました
  • 他のすべてのアプリケーションでnode_modeulesに関連するものが開いていないことを確認しました
54
Robin

私の状況では、それが役立ちました:

  1. キャッシュを消去

    npm cache clean --force
    
  2. 最新バージョンのnpmを管理者としてグローバルにインストールします。

    npm install -g npm@latest --force
    
  3. キャッシュを消去

    npm cache clean --force
    
  4. コンポーネントをもう一度インストールしてください。

これで問題が解決することを願っています。解決しない場合は、しばらくの間、ウイルス対策プログラムを切り替えてみてください。

52
Roman

ローカルコピーがディスク上に存在する場合でも、リモートリソースを取得する強制オプションを使用してnpmインストールを試みたときに機能しました。実行してみてください

npm install --force

Updated一部の同僚にとって、このソリューションは機能していませんでした。しかし、npmの代わりに yarn を使用してみました。常に問題なく動作します(より高速です)

yarn install [package-name]
16
sree

--forceオプション(常により良いアプローチです)を避けたい場合、をお勧めしますプロジェクトの実行を停止したことを確認してください。これは通常、私が見たケースのほぼ90%でファイルをロックする主な理由です

次の手順をこの順序で提案します:

1- Angularでng sを停止し、Reactでnpm startを停止します通常、このエラーは、開発サーバーがプロジェクトを実行しているときに発生します。 npmはそれらを更新できないため、このエラーをスローします

2- 上記が機能しない場合は、ワークスペースが開かれているコードエディターを閉じてみてください(ファイルまたは何かをロックしていた可能性があります)

したがって、コードエディターを閉じて実行してみてください。

npm install

3- それでも動作しない場合は、--forceオプションを試すことができます

npm install --force
12
Ahmed Elkoussy

package.jsonではなく、何らかの理由で、私のnode_modules/は読み取り専用になりました。これをリセットすると修正されました。

9
Amit Bhosle

https://github.com/Medium/phantomjs/issues/19 によると、同じエラーが発生していましたが、これはウイルス対策ソフトウェアが原因である可能性があります。私はインストール中に私のものを無効にし、管理者としてcmdで「npm install」を実行しました。お役に立てれば。

9
vmaldosan

私は同じことを得ていました。これはどこにも見つかりませんでしたが、VMがファイルを読み取り専用状態に変更する傾向があることに気づきました。そこで、package.jsonのファイルプロパティを開き、[全般]タブでRead-onlyの選択を解除しました。

ステップ

  1. package.jsonファイルに移動します。
  2. 右クリックして、プロパティを選択します。
  3. 一般タブで、属性セクションで、選択解除読み取り-only
  4. 適用をクリックして、変更を適用します。
7
christo8989

私はこの問題をWindowsでのみ複数回経験しましたが、通常はこれらの順序で試します。

  1. npm install --force
  2. Node_modulesが読み取り専用に設定されているかどうかを確認し、設定されている場合は削除します
  3. Node_modules /を削除します
  4. プロジェクトのルートフォルダーにアクセスできるエディターが開いているかどうかを確認します
  5. 再起動:(

通常、これらの手順のいずれかでnpmインストールを試行すると解決します。

私の場合、何かがロックされ、クイックリブートで解決されました。

4
Kon

これは、アンチウイルスによって引き起こされる典型的なエラーです。私のような場合、A/V(会社のポリシー)を無効にできない回避策があります。

Npmパッケージ内のpolyfills.jsを変更する必要があります。

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

次のステートメントを探してください。

if (process.platform === "win32") {

このステートメントの内部には、エラーが発生した場合に再試行を行うタイムアウトがあります。問題は、場合によっては、タイムアウト後もファイルが音声ビデオによってロックされていることです。解決策は、タイムアウトを切り捨てて、このステートメントをループに入れることです。前のコードでの変更はコメントしました:

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)
}
3

5.4.2にnpmに更新した後、同じ問題が発生しました。npmはほとんどのnpmコマンドで同じエラーを出します。一部のソリューションでは、-no-optionalで実行することをお勧めします。

常に機能しませんでした。

他のダウングレードが提案された、私はダウングレードしたくありませんでした。

インストールに問題があるのではないかと疑ったが、それが何であるかはわからない。

だから私はnpmを再更新しました:

npm i -g npm

それ以来、うまくいきました。

2
Salimd83

管理者としてコマンドプロンプトを開き、プロジェクトの場所に移動して、npm installを実行します。それは私のために働いた。

1

AppRoot\npmフォルダーが問題になる場合があります。場合によっては、AppRootフォルダーがネットワーク共有としてマークされているため、ウイルス対策がブロックします。完全なソリューションについては、以下のリンクに従ってください。

https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

これがお役に立てば幸いです。

1
Aryan

npmはscandirで私のために失敗していました:

npm install -g webpack

...これは、npmが here および他のいくつかのgithubスレッドで言及されている他のプロセスによって潜在的にロックされたファイルを「変更」しようとしたために発生する可能性があります。キャッシュを強制的にクリーニングした後、キャッシュを検証し、管理者として実行し、AVを無効にするなど、実際に働いていたソリューションがファイルをロックしている可能性のあるものを閉じていました(つまり、コンピューターの再起動)。

これが誰かの苦労を助けることを願っています。

1
kmk09k

同じ問題がありました。エラーの理由は、ファイルへのパス内のサポートされていない文字です。英語のキリル文字を置き換えた-それは助けた。

1
Aleksey_Kopasov

ファイルの名前を既に存在する別のファイル名に変更しようとすると、WindowsでEPERMエラーが発生する可能性があります。

1
Zach Bloomquist

私の答えは、最初にnpm cache clean --forceを実行することです。次に、npm install -g [email protected]を実行して、npm 5.3.0バージョンをインストールします。私にとって、このnpmバージョンは問題なく動作します。

0
UmaShankar

私は次のことをしました:

  1. Npmを最新バージョンにアップグレードしました:npm install -g [email protected]
  2. 以下からnpm-cacheフォルダーを削除しました:c:/users/[username]/AppData/Roaming/npm-cache
  3. キャッシュはきれいになりました:npm cache clean --force
  4. npm installを実行しました。
0
RV.

Npmグローバルパッケージのパスからパッケージフォルダーを削除するだけです。その後、パッケージを再インストールします。パッケージは次の場所にグローバルにインストールされることに注意してください。C:\ Users\your-name\AppData\Roaming\npm\node_modules

0
Ramin Ar

私はWindows 10でも同じ問題を抱えていました。次の手順に従ってください:

  • 管理者としてcmdを開きます。

  • uppdated npmパッケージをインストールします。

  • npm i -g npm

  • npm init --yes

0
Anand Tiwari

Martin Kearnがコメントで指摘したように、Visual Studioを閉じるはこれらのnpmパーミッションの問題を解決しました。明らかに、VSはnode_modulesのファイルをロックすることがあります。

0
jaycer