164

公開したばかりの npm モジュールをグローバルにインストールしようとしています。npm またはフォルダーからインストールしようとするたびに、このエラーが発生します。

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/giodamlio/npm-debug.log
npm ERR! not ok code 0

私はsudoを使用しており、パッケージ内のすべてをトリプルチェックしましたが、すべてが機能するはずです。私はいくつかの検索を行い、解決されていない同様のケースをいくつか見ました. これが私が試したものです。

  • npm のアップグレード ( sudo npm install -g npm)
  • グローバル npm キャッシュをクリアします ( sudo npm cache clear)
  • ユーザー npm キャッシュをクリアします ( npm cache clear)

特にnpmがchmodを実行しようとしたときに、パスにリンクしているファイルにエラーが関係していることに気付きました。これは問題ではありませんlib/cli.js。このインストール中、私には通常のアクセス許可があり、npm にはスーパーユーザーのアクセス許可があります。

npm ドキュメントを掘り下げた後、npm が bin links( ) を作成するのを停止するオプションを見つけました--no-bin-links。それを使用してインストールを試みたところ、問題なく動作しました。

それで、取引は何ですか?これは、まだ解決策のない奇妙なフリンジ ケースのバグですか?

編集:参考までに、ここに私がアップロードしたモジュールがあります

4

39 に答える 39

122

私は同様の問題に遭遇しました、

npm cache clean

それを解決しました。

于 2014-05-03T15:06:07.733 に答える
10

npm install でこのエラーが発生し、.npmignore を追加しても解決しませんでした。

エラー: ENOENT、stat 'C:\Users\My-UserName\AppData\Roaming\npm'

上記のフォルダーに移動しようとしましたが、存在しませんでした。Roamingフォルダーにnpmフォルダーを作成 すると、エラーが修正されました。

これはWindows 8.1上にあります

于 2014-11-15T23:08:50.060 に答える
3

grunt プラグインをインストールしようとしたときに、このエラーが発生しました。古いバージョンの npm を使用していることがわかりました。npm を最新バージョンに更新すると、エラーはなくなりました。

npm install -g npm
于 2015-04-04T16:13:39.480 に答える
3

npm installたくさんの依存関係を試してみると、同様のエラー メッセージが表示されました。それらのいくつかは/usr/bin/node、ノード実行可能ファイルであると想定しているため、Debian/Ubuntu へのインストールに失敗することが判明しました。修正するには、する必要があります

sudo ln -s nodejs /usr/bin/node 

またはさらに良いことに、

sudo apt-get install nodejs-legacy

詳細情報: https://stackoverflow.com/a/21171188/7581

于 2015-02-19T06:26:53.990 に答える
2

コンパイルされたコーヒー スクリプトが、公開された npm パッケージに含まれていないと思います。prepublishコマンドを書いてみてください。

于 2013-08-01T23:34:59.047 に答える
2

私の場合 (複数のコード ENOENT errno 34)、問題は~/.npm/ディレクトリ アクセスにありました。その中には、権限を持ついくつかのサブディレクトリがありroot:root、通常のユーザーとしてコマンドを実行しているときに問題が発生していました (.xml なしsudo)。そのため、dir内のすべてのサブディレクトリとファイルの所有権を~/.npm/ローカル ユーザーとグループに変更しました。それは私のUbuntuでうまくいきました(Macでもうまくいくはずです)。

$ sudo chown yourusername.yourgroupname ~/.npm/ -R

ユーザー名を知っているはずですよね?そうでない場合は、次のように実行$ whoamiして、グループ名もそれに置き換えます。

$ sudo chown johnb.johnb ~/.npm/ -R

編集:

テストケース:

私のローカルアカウントから、次のように、/home/johnbいくつかのジェネレーターをグローバルにnpmインストールしました。yeoman

$ sudo npm install -g generator-laravel

問題の性質:

上記のアクションにより、一部の依存関係が~/.npm/dir内にインストールされ、root:root所有権が発生しました ( のためsudo ...)。明らかに、npm は、依存関係をプルしてローカル ユーザーの subdir に書き込むときに、ローカル ユーザーとして実行されません (または依存関係のサブディレクトリの所有権を後で変更します) ~/.npm/。npm が基本的な UNIX ファイルシステムのセキュリティ問題に対して不注意である限り、問題は再発します。

解決策:

  1. 特に(root)~/.npm/で何かをインストールまたは更新する場合は、ローカルユーザーアカウント以外の所有権(および/または権限)を持つサブディレクトリが含まれているかどうかを継続的に確認してください。sodoその場合は、内部の所有権を~/.npm/再帰的にローカル ユーザーに変更します。

  2. npm, bower, grunt, ...上で説明したように、この問題に対処するようコミュニティに依頼してください。

于 2014-05-28T22:10:22.397 に答える
1

ネットで見つけたものをすべて試しました (npm cache clearおよびrm -rf ~/.npm) が、何も機能しないようです。問題を解決したのは、ノード (および npm) を最新バージョンに更新することでした。それを試してみてください。

于 2014-05-24T16:49:22.817 に答える
1

ubuntuでも同じ問題が発生し、ターミナルを閉じて新しいターミナルを開くことで問題を解決しました。

于 2021-03-03T11:50:16.217 に答える
0

別の原因で同様の問題がありました。yo nodeジェネレーターが"files": ["lib/"]mypackage.jsonに追加され、mycli.jsがディレクトリの外にあったため、 lib/npm に公開するときにスキップされていました。

( https://github.com/yeoman/generator-node/issues/63の Yeoman の問題は、すぐに修正される予定です。)

于 2014-11-06T16:51:59.800 に答える
0

イオンのインストール中に以下のエラーが発生しました

115648 エラー enoent ENOENT: no such file or directory, rename 'C:\Users\UserName\AppData\Roaming\npm\node_modules.staging\ansi-b11f0c4b' -> 'C:\Users\UserName\AppData\Roaming\npm\ node_modules\ionic\node_modules\cordova-lib\node_modules\ansi'

ansiそのパスに呼び出されるフォルダーはありませんでした。そこで作成し、正しくインストールしました。

于 2017-01-06T17:50:30.280 に答える
0

このエラーでプロジェクト ディレクトリに「make install」しようとした場合は、それを試すことができます。

rm -rf ./node_modules
npm cache clear
npm remove sails

次に、「make install」を試すことができます

「npm ERR! enoent ENOENT: no such file or directory, chmod '.../djam-backend/node_modules/js-beautify/js/bin/css-beautify.js'」がある場合は、インストールを試みることができますjs-beautify の以前のバージョン、その他のコメント: https://github.com/beautify-web/js-beautify/issues/1247

"dependencies": {
  ...
  "js-beautify": "1.6.14"
  ...
}

「make install」を実行します。より高いバージョン (1.7.0) を必要とする他の依存関係がない場合、packages.json でもこのパッケージをダウングレードする必要があります。

また

于 2017-09-18T10:29:47.267 に答える
0

最近、Windows 7 x64 マシンでノード 4.2.1 にアップグレードしました。実行時

npm install -g bower

同様のエラーが発生しました:

npm エラー! enoent ENOENT: そのようなファイルやディレクトリはありません。「C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH」を開きます

AppDataパスに関連していると思って、いじってみました

npm config edit

npm config edit --global

プレフィックス、キャッシュ、および tmp フィールドを変更しますが、新しいパスで同じエラーを受け取りました。

npm エラー! enoent ENOENT: そのようなファイルやディレクトリはありません。'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH' を開いてください

すべてのコマンドは管理者として実行されたので、完全な権限がありました。

次に、既存のファイルに問題があると思ったので、次を実行しました。

npm cache clean

しかし、同じエラーが発生しました。ただし、まだいくつかの一時ファイルが横たわっていました。cygwin を使用してすべての一時データを手動で削除すると、最終的に問題が解決しました。

rm -rf bower bower.cmd node_modules etc

Windows cmdしかない場合は、次のようなものを使用できます

rmdir /S THE_TEMP_DIR

すべてのサブディレクトリを削除します (ただし、深くネストされたノードの依存関係がある場合、これは悪名高い問題です)

そのため、npm のアップグレードや、bower やその他のパッケージのバージョンがぶら下がっていることに問題がある可能性があります。私の場合、それが問題のようでした

于 2015-10-30T16:45:16.567 に答える
0

ファイルへの変更がロックされている、または特定の保護プログラムによってパーティションのアクセス許可がロックされているという単純な理由で問題を解決し、その証拠として別のファイルまたはハード ドライブ上の別の場所にプロジェクトを作成する

于 2022-02-12T21:34:09.440 に答える