エラーのあるnpmインストールエラー:ENOENT、chmod


128

先ほど公開した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リンク(--no-bin-links)を作成しないようにするオプションを見つけました。

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

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


あなたのパッケージはnode-gypを使用していますか?もしそうなら、ビンリンクなしの呼び出しが関連していると思います。
jcollum 2013

いいえ、モジュールにネイティブコードはありません。ここでは、参照用のモジュールのソースです。
giodamelio 2013

1
--no-bin-linksちょうどpackage.jsonの中のファイルシンボリックリンクからNPMを停止binグローバルインストールのパスにハッシュを。
giodamelio 2013

ああ、私は間違いなくこれに遭遇したことがありますが、なぜなのか思い出せません。
jcollum 2013

@jcollumありがとう、本当にイライラします。すべてを10億回チェックしましたが、愚かな単純なものを逃したと感じずにはいられません。それか多分それはいくつかの奇妙なバグです。
giodamelio 2013

回答:


133

NPMがファイルの.gitignoreベースとしてyour を使用しているため、.npmignore無視し/libます。空の.npmignoreファイルをアプリケーションのルートに追加すると、すべてが機能するはずです。

[編集]-この動作の詳細については、https//docs.npmjs.com/misc/developers#keeping-files-out-of-your-packageをご覧ください。


くそー、それはそれでなければなりません。それは少し混乱する方法のようです。今はコンピューターではありませんが、数時間で試してみます。
giodamelio 2013

3
3時間の不満が.gitignoreの1行になり、npm install -gがおかしくなりました。めちゃくちゃ。
bryan、

2
'type NUL> .npmignore' for windows
Kabir

1
npm @ 5以降、npmキャッシュは破損の問題から自己修復し、キャッシュから抽出されたデータは有効であることが保証されています。すべてが一貫していることを確認したい場合は、代わりに「npm cache verify」を使用してください。
Abhijeet

1
package-lock.jsonファイルを削除
FennRussel

107

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

npm cache clean

解決しました。


11
私が試してみましたがnpm cache verify、うまくいきました。ヒントをありがとう。
Jaikrat 2017

npm @ 5以降、npmキャッシュは破損の問題から自己回復し、キャッシュから抽出されたデータは有効であることが保証されています。すべてが一貫していることを確認したい場合は、代わりに「npm cache verify」を使用してください。一方、インストーラーで問題をデバッグしている場合はnpm install --cache /tmp/empty-cache、実際のキャッシュを無効にする代わりに、一時キャッシュを使用できます。
ダニエルZA

9

この問題は、Macで実行しようとしたときにどういうわけか発生しましたnpm install -g bower。graceful-fsのようなものを見つけることができないため、多くのエラーが発生していました。npmを最初にどのようにインストールしたかはわかりませんが、おそらく、homebrewを使用してnodeがダウンしたようです。私は最初に走った

brew uninstall node

これは両方nodenpm私のパスから削除しました。そこから再インストールしました

brew install node

それが完了するnodenpm、私は自分の道を進み、走ることができました

rm -rf ~/.npm
npm install -g bower

これでバウアーが正常にインストールされました。

調合式の更新とインストールの更新はうまくいかなかったようですが、理由はわかりません。.npmフォルダーの削除は他の人にとってはうまくいったもので、私はそれを試みて成功しませんでした。今回は念のためにやった。次のどちらも私にとって問題を解決しなかったが、他の問題は解決したことにも注意してください。

npm cache clean
sudo npm cache clean

9

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

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

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

これはWindows 8.1です


4

私も同じ問題を抱えていて、ここで触れられていない処理を見つけました。私はコミュニティに貢献しますが:

npm install -g myappbinディレクトリをコピーしていませんでした。私はそれfilesを私の中に含めなかったのでこれが原因であることがわかりましたpackage.json

"files": [
  "lib",
  "bin" // this was missing
]

同じ問題が発生し、この回答が唯一の良い修正でした。その理由は、およびのようないくつかのエントリを含むfilesキーを自分の中にpackage.json持っていたが、フォルダは持っていなかったためです。したがって、キーがまったくない場合、またはキーとフォルダーが存在する場合に機能します。index.jsLICENSEbinfilesfilesbin
レミBecheras

おかげで、これは私が行き詰まるのを助けました。binディレクトリがファイルに含まれていないことを指摘したら、「ああ、もちろん!」と思いました。次に、ドキュメントに戻って見逃していないかどうかを確認しました(少なくとも、私が読んでいたnpmブログの投稿には記載されていません)。少なくとも私は狂っていません:P。助けてくれてありがとう!
Chris Schmitz

4

npm installローカルインストールで同様のエラーが発生しました。

npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'

エラーの原因はわかりませんが、最近、いくつかの新しいノードモジュールをローカルにインストールし、homebrewでノードをアップグレードして、「npm update -g」を実行しました。

この問題を解決できた唯一の方法は、ローカルのnode_modulesディレクトリを完全に削除してnpm install再度実行することでした。

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install

4

特に同様の問題があります:ERR!enoent ENOENT:そのようなファイルやディレクトリはありません。chmod 'node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv上記のすべての解決策を試しましたが、うまくいきませんでした。迷惑な箱を使用していて、プロジェクトは共有フォルダーにありました。問題は、プロジェクトを共有されていない別のフォルダー(2つのホスト)に移動すると、そこにのみあるようです。問題が解決しました。万が一他人が迷惑行為をしていた場合に備えて


あなたは悪夢から覚めた、tnx!私は2つの追加があります:1.)npmの使用をやめ、Yarnを使用します。2.)VMではなく、ホストマシンからnpmを実行します。
Vernooijをフリップ

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


3

npmにアップグレードした後、同様の動作が発生しました6.1.0。ファイルシステムのパスで指定されたパッケージをインストールしようとしたときに、それは一度動作したように見えましたが、このエラーの状態になりました:

npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename

次のことは問題を解決しませんでした

  • rm -rf node_modules
  • npm cache clean(与えたnpm ERR! As of npm@5, the npm cache self-heals.... use 'npm cache verify' instead.
  • npm cache verify
  • rm -rf ~/.npm

が問題修正した方法:

  • rm package-lock.json

2

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


いいえ、公開したときにlibフォルダーがありました。さらに、ローカルフォルダーからインストールしようとすると、同じエラーが発生します。libフォルダーがある場合でも。
giodamelio 2013

1
@giodamelio私はこれについてライアンに同意します。エラーはtakeapeek/lib/cmd.js存在しないと言っています。公開時にlibフォルダーが「ある」場合がありますが、リポジトリーの一部でない限り、または事前公開を使用して作成しない限り、npmを介してインストールする場合は「あり」ません。
badsyntax 2013

2

私の場合(複数のコードENOENT errno 34)問題は~/.npm/ディレクトリアクセスにありました。その中には権限を持ついくつかのサブディレクトリがありroot:root、通常のユーザー(なしsudo)としてコマンドを実行しているときに問題を引き起こしていました。そこで~/.npm/、dir 内のすべてのサブディレクトリとファイルの所有権をローカルユーザーとグループに変更しました。私の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. ~/.npm/特にsodo(root)を使用して何かをインストールまたは更新する場合は、ローカルユーザーアカウント以外の所有権(または権限)を持つサブディレクトリが含まれているかどうかを継続的に確認します。その場合は、内部の所有権~/.npm/をローカルユーザーに再帰的に変更します。

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


2

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

npm install -g npm

1

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


1

Windowsでも同様のエラーが発生しました。アプリデータを貼り付けて検索し、文字列を検索しますnpm

私は、文字列に置き換え'npm'て(引用符を含む)の'npm.cmd'両方でatlasboard\lib\package-dependency-manager.jsatlasboard\lib\cli\commands.js。これで問題が解決しました。


1

npm install -g mymodule存在しないスクリプトを含むパッケージのグローバルインストール()中の同じエラー。

package.json:

    ...
    "bin": {
      "module": "./bin/module"
    },
    ...

しかし、./bin/module名前が付けられていたため、存在しませんでしたmodulejs



1

このエラーは、node.jsが何らかの理由で破損している場合にも発生する可能性があります。node.jsをアンインストール/再起動/インストールすることでこのエラーを完全に修正しました。また、スローされた他の3つの不可解なエラーとともに、このエラーを修正しました。


1

package.jsonのキー「ディレクトリ」と「ファイル」の無効な値に注意してください

新しいアプリケーションで開始し、完全に空白で開始したい場合は、完全な空のフォルダーで開始するか、その中に有効なpackage.jsonファイルを含める必要があります。

最初にpackage.jsonファイルを作成したくない場合は、次のように入力します。 npm i some_package

「some_package」という名前のパッケージは、新しいサブフォルダー「node_modules」に正しくインストールされているはずです。

最初にpackage.jsonファイルを作成する場合は、次のように入力しnpm init ます。[Enter]をクリックするだけで、すべてデフォルトのままにします。有効なファイルが作成されます。

次のようになります。

{
  "name": "yourfoldername",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

次のキーがないことに注意してください:「ディレクトリ」、「リポジトリ」、「ファイル」。「ディレクトリ」や「ファイル」に誤った値を使用すると、パッケージをインストールできないようです。これらのキーを除外して、問題を解決しました。

キー「メイン」にも注意してください。これは存在しますが、無効な値が含まれています。「index.js」ファイルは(まだ)存在しません。安全に取り外すことができます。

ここで、次のように入力します。npm i some_package 「some_package」という名前のパッケージは、新しいサブフォルダー「node_modules」に正しくインストールされます。




0

「エラー:ENOENT、stat 'C:\ Users \ userName \ AppData \ Roaming \ npm」というエラーが発生しました。しかし、そのようなディレクトリはありませんでした。ディレクトリを作成し、npmインストールが機能し始めました


0

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

npm install -g bower

私は同様のエラーを受け取りました:

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

それがAppDataパスに関連していると思い、私はいじりました

npm config edit

そして

npm config edit --global

接頭辞、キャッシュ、およびtmpフィールドを変更するが、新しいパスで同じエラーを受け取った:

npm ERR!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や他のパッケージのバージョンがぶら下がることに問題があるかもしれません。私の場合、それが問題のように思われました


0

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

115648エラーenoent ENOENT:そのようなファイルまたはディレクトリはありません。名前を変更します '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そのパスで呼び出されたフォルダはありませんでした。そこで作成し、正しくインストールしました。


0

このエラーでプロジェクトディレクトリに「インストールを作成」​​しようとした場合、次のように試すことができます。

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でもこのパッケージをダウングレードする必要があります。

または


0

上記のどれも私にとってはうまくいきませんでした。しかし、yarn install働いた後、働きnpm i始めました。どの糸が固定されているかわからないが、すばやく簡単な解決策!



0

WebpackのDockerコンテナーでnpmと同様のエラーが発生しました。この問題は、Docker runの--userコマンドライン引数が原因で発生しました。そこにある特定のユーザーとグループが、ローカルボリュームの権限を何らかの方法で破壊したためです。これが誰かを助けることを願っています:)


-3
Creating a new React app in C:\Users\CM\Downloads\react\github-profile.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...

npm ERR! path C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 

v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335b1
0893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806

npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall lstat
npm ERR! Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6
5545008a3cad93d00f806'
npm ERR! { [Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1f 
a335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6554500
8a3cad93d00f806']

npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1
fa335b10893d67f7339e4 
af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806'
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 


npm ERR! stack:
npm ERR! 'Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015
eec65545008a3cad93d00f806'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335
b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93
d00f806',
npm ERR! parent: 'postcss-image-set-function' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a
text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double- 
check thenpm ERR! permissions of the file and its containing directories, or 
try  running

npm ERR! the command again as root/Administrator (though this is not 
recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\CM\AppData\Roaming\npm-cache_logs\2019-03-22T10_
27_19_722Z-debug.log


Aborting installation.
npm install --save --save-exact --loglevel error react react-dom react- 
scripts   has failed.

Deleting generated file... node_modules
Deleting generated file... package.json
Deleting GitHub-profile/ from C:\Users\CM\Downloads\reactDone.``

私は同様のエラーに直面していましたが、create-react-appコマンドを何度も実行しようとしましたが、最終的に作成されましたが、これは私のインターネット接続の問題でした。インターネット接続を確認してください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.