web-dev-qa-db-ja.com

npm listを使用する場合、「無効」とはどういう意味ですか?

私はnodejsが初めてで、bowerモジュールをグローバルにインストールしたばかりです。それ以来、npm listコマンドは次の出力を提供しますが、Webで検索しましたが、ヘルプが見つかりませんでした。

**npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk  
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex  
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore  
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/object-assign  
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url  
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/string-length/node_modules/strip-ansi  
npm ERR! not ok code 0**

残りの出力は正常で、インストールされているモジュールがリストされます。誰が何が起こっているのか説明できますか?

42
user2229167

同じパッケージを異なるバージョンの「依存関係」と「devDependencies」の両方にインストールすると、このエラーが発生しました。

45
aaaristo

これは、たとえば_"async":"0.9.3"_に何かが依存することを意味しますが、require("async")を実行すると、npmは他のバージョンを取得すると考えます。また、_package.json_ファイルにリストされている依存関係とそのバージョンが使用可能であることも確認してください。

すべてが正しい場合、この問題を解決できます

_npm update 
_

に続く

_npm install.
_
12
Ravi

パッケージの新しいバージョンをインストールした後、package.jsonを更新せずにこのエラーが発生していました。したがって、package.jsonには古いバージョンが必要でしたが、npm listnode_modulesディレクトリで新しいバージョンを検出していました。

次のコマンドを実行すると、メッセージが表示されなくなりました。

npm install {required_module}@{new_version} --save

6
Edo

npm updateを実行した後、関連するが異なるエラーが発生していました(ただし、ここで終了したため、ここで回答しています)。 (npm install、fwiwにはこのような問題はありません)

[email protected] /home/malcolm/myapp
├── [email protected]  invalid

beeminderパッケージは私が管理しているものなので、メインアプリではそのsemverをlatestに設定していました。これは以前はうまく機能していたように見えましたが、npmの新しいバージョンはそれを好まないと思います。

新しい変更を導入する場合は、とにかく自分のコードを変更している可能性があるため、^1.4.3を使用するだけでよいと考えました。しかし、何らかの奇妙な理由で最新のパッケージ(最新の変更を含む!)が必要な場合は、>=の代わりに^をプレフィックスとして使用できます。

0
MalcolmOcean