私は今公開した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! <[email protected]>
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を使っていて、すべてがうまくいくはずのパッケージ内のすべてのものをトリプルチェックしました。いくつか調べてみたところ、いくつかの類似したケースが見られましたが、どれも解決されていません。これが私が試したものです。
Sudo npm install -g npm
)Sudo npm cache clear
)npm cache clear
)特にnpmがchmodを実行しようとしたときに、エラーがパスにリンクしているファイルに関係していることに気付きました。これは問題にはなりません。私のlib/cli.js
には通常の権限があり、npmにはこのインストール中のスーパーユーザー権限があります。
Npmのドキュメントを調べた結果、npmがbinリンク(--no-bin-links
)を作らないようにするオプションを見つけました。それを使ってインストールしようとすると、うまくいきました。
それで、契約は何ですか?これはいくつかありますか 奇妙なフリンジケースのバグ まだ解決策がありませんか?
編集:参考として、 here は私がアップロードしたモジュールです
NPMは.gitignore
を.npmignore
ファイルのベースとして使用しているので、/lib
は無視されます。空の.npmignore
ファイルをアプリケーションのルートに追加すれば、すべてうまくいくはずです。
[編集] - ここでこの振る舞いに関する詳細情報: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
私は同様の問題に遭遇しました、
npm cache clean
それを解決しました。
私はnpmのインストール時にこのエラーが発生していましたが、.npmignoreを追加しても解決しませんでした。
エラー:ENOENT、状態 'C:\ Users\My-UserName\AppData\Roaming\npm'
上記のフォルダに移動しようとしましたが、存在しませんでした。 --- 作成済みnpm --- ローミングフォルダにあるときのエラーが修正されました。
これはWindows 8.1にあります
私がnpm install -g bower
を実行しようとしていたとき、この問題はどういうわけか私のためにMac上で私に起こりました。それは私にgraceful-fsのようなものを見つけることができなかったことに対する多くのエラーを与えていました。どうやってnpmをインストールしたのか私にはわかりませんが、おそらく自作を使ったノードでダウンしたようです。初めて走った
brew uninstall node
これにより、パスからnode
とnpm
の両方が削除されました。そこから私はそれを再インストールしました
brew install node
それが完了したとき、私は私のパスにnode
とnpm
を持っていて、実行することができました
rm -rf ~/.npm
npm install -g bower
これはそれからうまくbowerをインストールしました。
醸造公式の更新とインストールのアップグレードは私にはうまくいかないようでした、私はその理由がわかりません。 .npm
フォルダの削除は他の人々のために働いていたものでした、そして、私は成功することなくそれを試みました。念のため今回行った。それは他の人のために解決したが、以下のどちらも私のために問題を解決しなかったことにも注意してください。
npm cache clean
Sudo npm cache clean
私は同じ問題を抱えていて、そしてここで言及されていない処理をただ見つけました。私はコミュニティに貢献したいと思いますが:
npm install -g myapp
はbin
ディレクトリをコピーしていませんでした。私はこれを私のpackage.json
のfiles
に含めなかったことが原因であることがわかりました
"files": [
"lib",
"bin" // this was missing
]
いくつかの依存関係をnpm install
しようとしたときにも、同様のエラーメッセージが表示されました。そのうちのいくつかは/usr/bin/node
がノード実行可能ファイルであることを期待しているのでDebian/Ubuntuへのインストールに失敗します。修正するには、する必要があります
Sudo ln -s nodejs /usr/bin/node
あるいはもっと良い
Sudo apt-get install nodejs-legacy
ローカルインストールのnpm install
で同様のエラーが発生しました。
npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'
何がエラーの原因であるかはわかりませんが、最近、新しいノードモジュールをローカルに2つインストールし、nodeを自作でアップグレードして、 'npm update -g'を実行しました。
私がこの問題を解決することができた唯一の方法は、ローカルのnode_modulesディレクトリを完全に削除し、再度npm install
を実行することでした。
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
私の場合(複数コードENOENT errno 34)に問題は~/.npm/
ディレクトリアクセスにありました。その中にはroot:root
権限を持つサブディレクトリがいくつかあり、それは私が普通のユーザーとしてコマンドを実行している間(Sudo
なしで)問題を引き起こしていました。だから私は~/.npm/
ディレクトリ内のすべてのサブディレクトリとファイルの所有権を自分のローカルユーザーとグループに変更しました。それが私のUbuntuのトリックでした(Macでもうまくいきます)。
$ Sudo chown yourusername.yourgroupname ~/.npm/ -R
あなたはあなたのユーザー名を知っているべきですよね?もしそうでなければ、$ whoami
を実行し、あなたのグループ名もそれに置き換えてください。
$ Sudo chown johnb.johnb ~/.npm/ -R
編集:
テストケース:
私のローカルアカウント/home/johnb
からyeoman
用のジェネレータをグローバルにnpmインストールしました。
$ Sudo npm install -g generator-laravel
問題の性質:
上記のアクションにより、(~/.npm/
のため)root:root
所有権を持つSudo ...
dir内に依存関係がインストールされました。明らかにnpmは、依存関係を引っ張ってそれらをローカルユーザのサブディレクトリ~/.npm/
に書き込むときには、ローカルユーザとしては動作しません(または後で依存関係のサブディレクトリの所有権を変更します)。基本的なUNIXファイルシステムのセキュリティ問題に対してnpmがそれほど不注意である限り、問題は再発します。
解決策:
特にsodo
(root)を使用して何かをインストールまたは更新する場合は、~/.npm/
にローカルユーザーアカウント以外の所有権(またはアクセス許可)を持つサブディレクトリが含まれているかどうかを継続的に確認してください。そうであれば、~/.npm/
内の所有権を再帰的にローカルユーザーに変更します。
npm, bower, grunt, ...
コミュニティに、私が上で説明したように、彼らがこの問題に対処するように依頼します。
私は特に似たような問題を抱えています:ERR! ENOENT ENOENT:そのようなファイルやディレクトリはありません、chmod 'node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv私は上記の解決策をすべて試しましたが、運が悪くなりました。私はvagrant boxを使っていました、そしてプロジェクトは共有フォルダーにありました。プロジェクトを別の非共有フォルダ(ホストとは別のフォルダ)に移動すると、問題はそこだけにあるようです。問題が解決しました。万が一他の人が浮浪者を使っていた場合
あなたのコンパイルされたコーヒースクリプトは公開されているnpmパッケージから欠けていると思います。 prepublish コマンドを書いてみてください。
不機嫌そうなプラグインをインストールしようとしたときに私はこのエラーを得た。古いバージョンのnpmを使用していて、npmを最新バージョンに更新した後にエラーが消えました。
npm install -g npm
ネットで見つけたもの(npm cache clear
とrm -rf ~/.npm
)をすべて試しましたが、うまくいくようには思えません。この問題を解決したのは、ノード(およびnpm)を最新バージョンに更新することでした。試してみてください。
Windowsでは、私は同じようなエラーがありました。 App Dataを貼り付けて検索し、文字列npm
を検索します。
'npm'
と'npm.cmd'
の両方で、文字列atlasboard\lib\package-dependency-manager.js
(引用符を含む)をatlasboard\lib\cli\commands.js
に置き換えました。これで問題は解決しました。
Node.jsが何らかの理由で破損している場合も、このエラーが発生する可能性があります。私は完全にuninstall/restart/install node.jsでこのエラーを修正しました、そしてそれは投げられる3つの他の不可解なエラーと共にこのエラーを修正しました。
存在しないスクリプトを含むパッケージに対するグローバルインストール(npm install -g mymodule
)中の同じエラー。
Package.jsonで:
...
"bin": {
"module": "./bin/module"
},
...
しかし./bin/module
はmodulejs
という名前のため存在しませんでした。
Package.jsonのキー "directories"と "files"に無効な値を指定してください。
新しいアプリケーションから始めて、完全に空白から始めたい場合は、完全に空のフォルダから始めるか、またはその中に有効な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"
}
"ディレクトリ"、 "リポジトリ"、 "ファイル"というキーがないことに注意してください。 "directories"や "files"、あるいはその両方に誤った値を使用した場合は、パッケージをインストールできません。これらのキーを除外して、私のために問題を解決しました。
キー "main"にも注意してください。これは存在しますが、無効な値が含まれています。ファイル "index.js"はまだ存在しません。安全に削除できます。
npm i some_package
と「some_package」という名前のパッケージは新しいサブフォルダ「node_modules」に正しくインストールされるはずです。
「エラー:ENOENT、統計「C:\ Users\userName\AppData\Roaming\npm」というエラーが表示されました。ただし、そのようなディレクトリはありませんでした。ディレクトリを作成し、npmインストールが機能し始めました
私は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
私は最近、Windows 7 x 64マシンでノード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のバージョンや他のパッケージがぶら下がっていることに問題があるかもしれません。私の場合はそれが問題のようでした
私はyo node
ジェネレータが私の"files": ["lib/"]
にpackage.json
を追加したこと、そして私のcli.js
がlib/
ディレクトリの外にあったので、npmに発行するときそれがスキップされていました。
(Yeomanの問題は https://github.com/yeoman/generator-node/issues/6 もうすぐ修正されるはずです。)
あなたがこのエラーであなたのプロジェクトディレクトリに "make install"しようとしたなら、あなたはそれを試すことができます:
rm -rf ./node_modules
npm cache clear
npm remove sails
それならあなたは "make install"を試すことができます。
"npm ERR!enoent ENOENT:そのようなファイルやディレクトリはありません、chmod '.../djam-backend/node_modules/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でもダウングレードする必要があります。
または
はじめに
npm rm -rdf node_modules
それから
npm install
その後、追加したいファイルをインストールします
イオンをインストールしている間、私はエラー以下になりました
115648エラーENOENT ENOENT:そのようなファイルまたはディレクトリはありません。名前を 'C:\ Users\UserName\AppData\Roaming\npm\node_modules.staging\ansi-b11f0c4b' - > 'C:\ Users\UserName\AppData\Roaming\npm\node_modules \イオン\ node_modules\cordova-lib\node_modules\ansi '
そのパスにansi
というフォルダーはありませんでした。私はそれをそこに作りました、そしてそれは正しくインストールされました。
上記のどれも私のために働きませんでした。しかしyarn install
は機能し、それからnpm i
は機能し始めました。糸がどのように固定されたのかわからないが、素早く簡単な解決策!