私はうなり声とnpmが初めてです。だから私はサイトでいくつかの「クックブックの例」を試しています ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end- developer#front_end_developers '今すぐそこを見る必要はありませんが、サイトを共有するのは良いことだと思いました。これまでのところ、グローバルインストールに関してはこれまでのところです。 (わかりました、いくつかのエラーを把握しなければなりませんでしたが、今はnpmを使用しています)。
何かをグローバルにインストールしようとすると、行き詰まります。
これまでにいくつかのパッケージをグローバルにインストールするためにテストしたこと:
テストディレクトリgrunttest
を作成しました
そのディレクトリ内:
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**
質問:
情報:
WindowsマシンのWindows 7で、Cygwinをシェルとして使用しています。もちろん、jshint(jshint someTestfile.js
)だけを試しても動作しません。
事前に感謝、メル
npm ERR! extraneous
は、パッケージがインストールされているが、プロジェクトのpackage.json
にリストされていないことを意味します。
グローバルにインストールされたパッケージをリストしているので、グローバルにインストールされたほとんどのものがプロジェクトのpackage.json
にないため、無視できる余分なエラーが大量に発生します。
1および2:これは、プロジェクトのpackage.jsonファイルにjshintがリストされていないが、グローバルにインストールされていることを意味します。だから、それは大きな問題ではありません。
3:このextraneousエラーを回避するには、オプション--save
を使用してインストールを実行または再実行できます。これにより、package.jsonファイルが自動的に更新されます。
npm install -g jshint --save
または、"dependencies": {...}
を使用してpackage.jsonファイルを手動で更新する必要があります
これを解決するには、親パッケージのフォルダーでnpm update
を実行し、余分なパッケージの一部をリストから削除してから、残りのいくつかについてnpm uninstall <package>
を実行しました。
これを行った後、エラーが出ないので、うまくいったようです。
すべての答えを組み合わせて解決しました。最初に、パッケージをグローバルにインストールしました。
npm install -g packagename --save
Npmはこのパッケージもグローバルにインストールしましたが、ローカルのpackage.jsonファイルには追加しなかったため、何かをしなければなりませんでした。
ローカルのソリューションを削除してグローバルにインストールするソリューションを選択します。
npm uninstall packagename
npm install -g packagename
これにより、警告が表示されなくなり、package.jsonファイルが台無しになりません。
私の場合、そのpackage.json
ファイルのパッケージ名が、依存モジュールのpackage.json
にリストされている依存名と同じではなかったためです。私のエラーは、私が作成した新しいモジュールですが、npmが何の手がかりも与えないため、見つけるのは難しいためです。
これは、「my-module」という名前のタイプミスでdependencies: { "my-module": "file:local-modules/mymodule" }
構文を使用したときに発生しました。
私の場合、これは 'npm ERR! 「npm ls」を実行したときに、cygwinターミナルに無関係なメッセージが表示されました。これは、多くの手直しを行った後、何らかのグローバルに破損したセットアップだと思いました。ここで次の観察を学びます。
「rm package.json」と「npm ls」でエラーメッセージが表示されなくなりました。ですから、「node_modules」フォルダーとpackage.jsonファイルの存在を常に現在の場所で確認します。これらはチェックで最初に優先順位が付けられ、これらが欠落している場合、チェックは親フォルダーなどに続きます。また、多くのコードスニペットをいじくり回した場合、多くのnode_modulesフォルダーとpackage.jsonファイルが散在している可能性があります。 J2EE Java development/Eclipse IDEを行っているときや、regeditを使用してWindowsの設定を変更する必要があるときとは異なり、ここで実際に破損するものはありません。