web-dev-qa-db-ja.com

npm windowsをグローバルにインストールすると、npm ERR!無関係な

私はうなり声とnpmが初めてです。だから私はサイトでいくつかの「クックブックの例」を試しています ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end- developer#front_end_developers '今すぐそこを見る必要はありませんが、サイトを共有するのは良いことだと思いました。これまでのところ、グローバルインストールに関してはこれまでのところです。 (わかりました、いくつかのエラーを把握しなければなりませんでしたが、今はnpmを使用しています)。

何かをグローバルにインストールしようとすると、行き詰まります。

これまでにいくつかのパッケージをグローバルにインストールするためにテストしたこと:

  1. テストディレクトリgrunttestを作成しました

  2. そのディレクトリ内:

    npm install -g jshint

私が見ることができる出力:

 npm http GET https://registry.npmjs.org/jshint
 npm http 304 https://registry.npmjs.org/jshint
 ...
 npm http 304 https://registry.npmjs.org/string_decoder
 C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
 [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected] ([email protected], [email protected])
 ├── [email protected] ([email protected])
 └── [email protected] ([email protected], [email protected], [email protected], [email protected])

前回のインストール(数分前)からリソースが変更されなかったというだけの理由で、304を認識します。

jshintが存在するかどうかの確認:

`npm -global list`

出力:

[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   └─... ├── [email protected]
├── [email protected]
└── [email protected]

**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**

質問:

  1. なぜnpm ERRが発生するのですか!無関係...?
  2. どういう意味ですか?
  3. この問題を解決するにはどうすればよいですか?

情報:

WindowsマシンのWindows 7で、Cygwinをシェルとして使用しています。もちろん、jshint(jshint someTestfile.js)だけを試しても動作しません。

事前に感謝、メル

112
Meru

npm ERR! extraneousは、パッケージがインストールされているが、プロジェクトのpackage.jsonにリストされていないことを意味します。

グローバルにインストールされたパッケージをリストしているので、グローバルにインストールされたほとんどのものがプロジェクトのpackage.jsonにないため、無視できる余分なエラーが大量に発生します。

196

1および2:これは、プロジェクトのpackage.jsonファイルにjshintがリストされていないが、グローバルにインストールされていることを意味します。だから、それは大きな問題ではありません。

3:このextraneousエラーを回避するには、オプション--saveを使用してインストールを実行または再実行できます。これにより、package.jsonファイルが自動的に更新されます。

npm install -g jshint --save

または、"dependencies": {...}を使用してpackage.jsonファイルを手動で更新する必要があります

20
rebe100x

これを解決するには、親パッケージのフォルダーでnpm updateを実行し、余分なパッケージの一部をリストから削除してから、残りのいくつかについてnpm uninstall <package>を実行しました。

これを行った後、エラーが出ないので、うまくいったようです。

4
metakermit

すべての答えを組み合わせて解決しました。最初に、パッケージをグローバルにインストールしました。

npm install -g packagename --save

Npmはこのパッケージもグローバルにインストールしましたが、ローカルのpackage.jsonファイルには追加しなかったため、何かをしなければなりませんでした。

ローカルのソリューションを削除してグローバルにインストールするソリューションを選択します。

npm uninstall packagename
npm install -g packagename

これにより、警告が表示されなくなり、package.jsonファイルが台無しになりません。

3
scorer

私の場合、そのpackage.jsonファイルのパッケージ名が、依存モジュールのpackage.jsonにリストされている依存名と同じではなかったためです。私のエラーは、私が作成した新しいモジュールですが、npmが何の手がかりも与えないため、見つけるのは難しいためです。

これは、「my-module」という名前のタイプミスでdependencies: { "my-module": "file:local-modules/mymodule" }構文を使用したときに発生しました。

2
youen

私の場合、これは 'npm ERR! 「npm ls」を実行したときに、cygwinターミナルに無関係なメッセージが表示されました。これは、多くの手直しを行った後、何らかのグローバルに破損したセットアップだと思いました。ここで次の観察を学びます。

  • 「npm ls」は、現在のフォルダーの場所に応じて異なる出力を提供します。
  • 「npm ls」は、現在のフォルダーの場所にある「node_modules」フォルダーの存在を検出し、それらのコンテンツをリストしようとします。グローバルなものではありません!
  • さらに、「node_modules」を含む現在のフォルダーに、ここにリストされているモジュールの数が少ないpackage.jsonファイルもある場合、エラーが表示されます。

「rm package.json」と「npm ls」でエラーメッセージが表示されなくなりました。ですから、「node_modules」フォルダーとpackage.jsonファイルの存在を常に現在の場所で確認します。これらはチェックで最初に優先順位が付けられ、これらが欠落している場合、チェックは親フォルダーなどに続きます。また、多くのコードスニペットをいじくり回した場合、多くのnode_modulesフォルダーとpackage.jsonファイルが散在している可能性があります。 J2EE Java development/Eclipse IDEを行っているときや、regeditを使用してWindowsの設定を変更する必要があるときとは異なり、ここで実際に破損するものはありません。

1
typelogic

これは、パッケージがpackage.jsonにないためです。追加すると、問題は解決します。下の画像をご覧ください。

enter image description here

0