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


107

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

npm ERR!エラー:EPERM:操作は許可されていません。C:\ projects ****** \ node_modules \ react-async-script 'の名前を変更してください->' C:\ projects ******* \ node_modules.react-async-script .DELETE '

  • 管理者としてcmdを実行しています
  • npm cache clean前に走った
  • 他のすべてのアプリケーションにnode_modulesオープンに 関連するものがないことを確認しました

2
管理者としてcmdを実行すると私のために働きました
Homer

私の場合、管理者ではなく通常のユーザーとして実行する必要があり、機能しましたが、ユーザー権限の競合のようです。しかし、ここに与えられた他のすべてのソリューションはnpm clean、npm installは必要ないようです。そのユーザー権限の問題。より多くの人が確認できれば、新しい回答を投稿できます。
MG開発者

回答:


122

私の状況では、これが役立ちました。これらのコマンドの実行に進む前に、すべてのVS Codeインスタンスを閉じます。

  1. でキャッシュを消去する

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

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

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

これで問題が解決することを願っています。そうでない場合は、ウイルス対策プログラムを一時的に無効にして、もう一度お試しください。


1
これはWindowsでの私の問題でした。@ kamil.kaに感謝します。Atomはpackage.jsonをロックしていたため、npm installはそれを変更できませんでした。
ジョージ

28
同じコメントがWindowsのVSコードに適用されます…それを
閉じれ

1
私にとっては、別のノードプロセス(私の場合はjson-server)を実行していました。いったん停止すると、パッケージはエラーなしでインストールされました。
EddieB

私にとって、「ERR!enoentこれはnpmがファイルを見つけられないことに関連しています」のようなエラーは、ビジュアルスタジオコードのすべてのインスタンスを終了することで解決しました。
Abhishek

たとえば、更新されていないモジュールリンクを含むすべてのjsファイルをパックしたwebpackの使用を監視することがあります。app.js。npmの更新後、実行してみてくださいnpm run watch。その後、私の場合、適切なモジュールリンクが新しいapp.jsファイルで更新されました。
Peter van der Lely

21

そうではありませんpackage.jsonが、何らかの理由で、私node_modules/は読み取り専用になりました。これを修正すると、これが修正されます。


私のために、「リセットする」意味1.VS、閉会2.の削除をnode_modulesFileExplorerから3.私のPCを再起動し4.実行しますnpm install --force。その後、最終的にはうまくいきました。
EGC

21

ローカルコピーがディスクに存在する場合でも、リモートリソースをフェッチするための強制オプションを指定してnpm installを実行すると、動作しました。実行してみてください

npm install --force

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

yarn install [package-name]

他の人々はAVソフトウェアをオフにすることを提案しました。私にとって、私がいるネットワークでは、これは選択肢ではありませんでした。--forceフラグでこの問題が解決しました
user2590928 '15

私は糸を使って問題を解決しただけなので、彼にショットをすることをお勧めします。
アンジェロPolotto

20

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

次の手順をこの順序でお勧めします。

1-Angular停止ng sとReact停止で npm start は通常、この問題が解決されます。通常、このエラーは、開発サーバーがプロジェクトを実行しているときにプロジェクトが実行され、一部のファイルがロックされ、npmがファイルを更新できないため、このエラーがスローされるためです。

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

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

npm install

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

npm install --force

2
これは私の問題でした、VS Codeのターミナルを介してnode_modulesフォルダーをリムラフしました-何らかの理由で、ファイルシステムからnode_modulesが完全に削除されず、ロックされていました。VS Codeのウィンドウを閉じて再び開くまで、実際には削除されておらず、npm installを再度実行できませんでした。
Stu Furlong 2019年

13

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


1
パーgithub.com/npm/npm/issues/12059これは修正されました。それがどのリリースになるのかについての言葉はありません。コメントによると、AVの無効化は常に機能するとは限りません。
user1821052

私の場合、インストール中にSourceTreeを閉じる必要がありました。
Dejan

13

私にとっては、コードエディター(VSコード)を閉じて、同じコマンドを実行しました。これで問題は解決しました。


9

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


8

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

手順

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

私にとっては読み取り専用ですが、元の問題は、通常、コードを使用してインストールするだけでした。この1つのケースでは、アプリの新しいインスタンスをVisual Studioで開いたため、古いバージョンからの変更を移植でき、VSはすぐにそれ自体のインストールを開始しました。次に、通常どおりにコードを開いてnpm installを実行すると、両方のアプリが混乱しました。数回失敗した後、作業中のルートバージョンのアプリからノードモジュールを一括削除して、変更をバックポートできるようにしました。このフォルダは読み取り専用だったため、ブロックされていました。
Matrim

8

これは、アンチウイルスが原因の一般的なエラーです。私のような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)
}

あなたは本当のMVPです。
Atanas Korchev

4

私の場合、何かが閉じ込められ、すぐに再起動することで解決しました。


4

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

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

通常npm install、これらのステップの1つを試した後でも解決します。




2

npmを5.4.2に更新した後も同じ問題があり、npmはほとんどのnpmコマンドで同じエラーを出し始めます。いくつかの解決策は、それを--no-optionalで実行することを提案していますが、常に機能するとは限りませんでした。

他の人はダウングレードすることを提案しましたが、ダウングレードしたくありませんでした。

インストールに問題があるのではないかと思いました。

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

npm i -g npm

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


1

npmは私のために失敗しましたscandir

npm install -g webpack

...これは、npmがここで言及したように他のプロセスや他のいくつかのgithubスレッドでロックされている可能性のあるファイルを「変更」しようとしたために発生した可能性があります。キャッシュを強制的に消去し、キャッシュを確認し、管理者として実行し、AVを無効にした後、実際に機能した解決策は、ファイルをロックしている可能性があるものをすべて閉じていた(つまり、コンピューターを再起動した)。

これが苦労している人に役立つことを願っています。


1

私も同じ問題を抱えていました。エラーの理由は、ファイルへのパスにサポートされていない文字があるためです。英語のキリル文字を置き換えました-それは役に立ちました。


1

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

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

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


1

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

  1. npmを最新バージョンにアップグレードしました: npm install -g npm@6.5.0-next.0
  2. npm-cacheフォルダーを以下から削除しました: c:/users/[username]/AppData/Roaming/npm-cache
  3. キャッシュを消去しました: npm cache clean --force
  4. を実行しましたnpm install


1

npm: v6.9.0&& node: v10.16.1を実行している私の場合Windows、CLI(git bash)を管理者として実行する必要がありました。次に、警告/エラーなしでパッケージがインストールされました


0

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


0

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


0

Windows 10でも同じ問題が発生しました。次の手順に従ってください。

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

  • 更新されたnpmパッケージをインストールします。

  • npm i -g npm

  • npm init-はい


0

特権管理者としてコマンドを実行するとうまくいきました。作業中のエディターを閉じてから再試行してください。


0

私もこれで苦労しました。最後に、nvmを使用する場合に正常に機能するソリューションを示します。

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

以上です。


0

これは、ウイルス対策ソフトウェアが原因である可能性があります。AVを無効にできない場合は、ノードがAVエンジンによってアクティブに監視されているAPPDATAディレクトリにインストールされるときに、NPMグローバルインストールの場所を変更してみてください。次のコマンドを実行してみてください

npm config setプレフィックス "YOUR CUSTOM LOCATION" npm config set cache "YOUR CUSTOM LOCATION"

node_modulesディレクトリを削除して、パッケージを再度インストールします。




0

VSを閉じ、node_modulesフォルダーを削除しました。

次に実行しました:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

次に、実行が完了したら、node_modulesフォルダーのみを読み取らないようにプロパティを変更する必要がありました。

次に実行しました:

npm i @microsoft/signalr @types/node

次に、VSでプロジェクトをバックアップして開き、package.jsonが依存関係を確認しました。

他の人と同じように、node_modulesフォルダーで読み取り専用について話し、VSを閉じてnpm install overを実行します。


0

PHPストームで問題が発生している場合:

  1. 端子タブを閉じる
  2. 新しいターミナルタブを開く
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.