ノードパッケージがあります。パッケージルートからnpm install
を実行すると、たくさんのものがインストールされますが、次のようなエラーメッセージが表示されます。
npm WARN未解決の依存関係/ユーザー/ seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/globにgraceful-fs@'~1.2.0 'が必要ですがロードされます
私はnpm install
が正確に何をするのかについて混乱しなければなりません。依存関係を検出した場合は、インストールしないでください。どのような条件下でこのようなエラーメッセージが表示されますか?また、依存関係をどのように解決できますか?
依存関係の解決が少し壊れているためだと思います。 https://github.com/isaacs/npm/issues/1341#issuecomment-20634338 を参照してください。
考えられる解決策は次のとおりです。
未解決の依存関係を含むトップレベルモジュールを手動でインストールする必要があります。npm install [email protected]
Package.jsonを再構築してください。すべての高水準モジュール(他のモジュールに対する依存関係として機能する)を一番下に配置します。
'npm install'コマンドを再実行してください。
この問題は、タイムアウトなどの理由でnpmがすべてのパッケージをダウンロードできなかったために発生した可能性があります。
注:npm install [email protected]を使用して、失敗したパッケージを手動でインストールすることもできます。
'npm install'を実行する前に、以下のステップを実行すると役に立ちます。
なぜ 'node_modulesを削除する'必要があるのですか? npmのインストール中にネストされたモジュールがインストールに失敗した場合、それ以降のnpmのインストールでは、見つからないネストされた依存関係は検出されません。
このような場合は、見つからないネストされたモジュールのトップレベルの依存関係を取り除いて、再度npm installを実行するだけで十分な場合があります。見る
WIFIがnpm install
の間にダウンしたとき、それは私に起こりました。 node_modules
を削除してnpm install
を再実行すると修正されました。
これらのコマンドラインを使用して問題を解決しました
$ rm -rf node_modules/
$ Sudo npm update -g npm
$ npm install
完了しました!
NPMを最新バージョンにアップグレードすることはこれを大いに助けることができます。上記のduleの答えは、依存関係管理が少し壊れていると言うのは正しいことですが、これは主に古いバージョンのnpmのためのものであるようです。
コマンドnpm list
は、インストールされているすべてのnode_modules
のリストを表示します。私がバージョン1.4.2からバージョン2.7.4にアップグレードしたとき、以前はWARN unmet dependency
でフラグが立てられていた多くのモジュールはもはやそのようには記されていません。
Npmを更新するには、MacOSXまたはLinuxでnpm install -g npm
と入力してください。 Windowsでは、nodejsインストーラを再ダウンロードして再実行することがnpmを更新するより効果的な方法であることがわかりました。
node_modules
ディレクトリを削除した後でも、上記の答えは私を完全に助けてくれませんでした。
以下のコマンドは私をついに助けました:
npm config set registry http://registry.npmjs.org/
これは安全でないHTTP接続を介してノードモジュールを引っ張ることに注意してください。
すべての-- UNMET PEER DEPENDENCY
に対して、例えばex。 -- UNMET PEER DEPENDENCY [email protected]
、npm install --save [email protected]
がなくなるまで、UNMET DEPENDENCIES
を使ってその依存関係をインストールします。
がんばろう。
これで解決しました:
package.json
内のバージョン番号を訂正してください。node_modules
(rm -rf node_modules
)を削除してください。npm install
を再実行してください。エラーがなくなるまで、これらの手順を繰り返します。
--dev devDependenciesを再帰的に(そして永遠に実行されるように)インストールすることで、バージョンの違いを解決するのにどのように役立つか?
Node_modulsフォルダーを削除してからnpmキャッシュを消去してから、もう一度「npm i」を実行してみてください。
反応パッケージをインストールしていたときにこの問題に遭遇し、これは私のために働きました:npm install --save <package causing this error>
React Native CLIをインストールしているときにも、同様の問題がありました。ここで答えを読んだ後、どの/node_modules
ディレクトリを削除すればよいのかわからなかった。私は結局走ったばかりです
npm update -g
その後、パッケージをインストールすることができました。
私の場合は、npmのアップデートで解決しました。
Sudo npm install -g npm
似たようなことで、もう1つステップを加えます。
Npmバージョン> 1.4.9では、 'npm install'はdevDependenciesをインストールします。まず既存のモジュールとキャッシュを削除してみてください。
remove node_modules $ rm -rf node_modules/
run $ npm cache clean
それから試してみてください。
npm install --dev
npm update --dev
これは少なくとも再帰的な依存関係の解決を解決します。
私はnpm install
を実行する自動展開システムで作業しようとしていたので、これらのソリューションの多くは自動化された方法ではうまくいきません。 node_modules/
を削除したり再作成したりする立場にはありませんでしたし、Node.jsのバージョンを簡単に変更することもできませんでした。
それで私はnpm shrinkwrap
を実行することになりました - 私のデプロイメントバンドルにnpm-shrinkwrap.json
ファイルを追加し、そこからインストールを実行します。これで問題は解決しました。シュリンクラップファイルを「ヘルパー」として使用すると、npmは正しいパッケージを見つけてそれらをインストールすることができたようです。 (Shrinkwrapには他の機能もありますが、これは私がこの特定のケースで必要としていたものです)。
npm list
を実行し、UNMET DEPENDENCYとしてリストされているすべてのパッケージをインストールしました。
例えば:
├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1
npm install
はnpm-shrinkwrap.json
からのすべてのパッケージをインストールしますが、package.json
内のパッケージが前者でプリセットされていない場合はそれらを無視するかもしれません。
プロジェクトにnpm-shrinkwrap.json
がある場合は、add/remove/change npm shrinkwrap
を追加するたびに、必ずpackage.json
を実行して再生成してください。
4.0.0に更新中
4に更新するのは、あなたのAngular依存関係を最新バージョンに更新するのと同じくらい簡単です。そして、アニメーションが欲しいかどうかを二重チェックします。これはほとんどのユースケースで機能します。
Linux/Macの場合
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest TypeScript@latest --save
Windowsの場合
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest TypeScript@latest --save
それから、あなたが通常使うどんなng serveまたはnpm startコマンドでも実行すれば、すべてうまくいくはずです。
あなたがアニメーションに頼っているなら、あなたのルートBrowserAnimationsModule
の@angular/platform-browser/animations
から新しいNgModule
をインポートしてください。これがないと、コードはコンパイルされて実行されますが、アニメーションはエラーを引き起こします。 @angular/core
からのインポートは非推奨でした。新しいパッケージからのインポートを使用してください
import { trigger, state, style, transition, animate } from '@angular/animations';.
角度バージョン2.x.xで作業している場合は、角度バージョン4.x.xにアップグレードする必要があるかもしれません。
いくつかの依存関係は角度4が必要です