NPMは、再帰的/詳細な更新を実行した後、満たされていない依存関係を報告します
npm ls
は、多くの欠落した/満たされていない依存関係を報告します。次に例を示します。
├─┬ @semantic-release/[email protected]
│ ├── @semantic-release/[email protected] deduped
│ ├── [email protected] deduped
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ UNMET DEPENDENCY [email protected]
npm ERR! missing: [email protected], required by @semantic-release/[email protected]
npm init
を実行しますnpm i -D @semantic-release/exec
、複数のレベルの依存関係を持つパッケージをインストールしますnpm --depth 9999 update
実行しますpackage.json
ファイルまたは祖先のnpm-shrinkwrap.json
に従って実行されます。package-lock.json
がないかのように動作し、すべての依存関係の解決に進み、必要に応じてインストール/更新/削除してから、解決されたツリーでロックファイルを更新する必要があります。重複した問題を準備したようです
コマンドnpm update --depth <number>
は、更新されたdevDependencies依存関係のdev: true
を失います。
npm update --depth <number>
を使用するときはいつでも更新されたdevDependenciesの依存関係に対してdev: true
が失われます
loses-dev-for-dev-deps
npm i
実行しますnpm update --depth 7
実行しますこのアクションは、更新されたdevDependenciesの依存関係に対してdev: true
を保持する必要があると思います
おそらく#944に関連している
また、 --depth
が0より大きい場合、 npm update
が依存関係のdev
フラグを忘れてしまうこともあります。深さが浅い場合は必要ないのではないでしょうか。
ノードモジュールを再インストールした後、devフラグが復元されることがわかりました( rm -rf node_modules; npm install
)
npm update --depth
を使用した後にdev
フラグが失われるという同じ問題が発生しますが、他の依存関係の実際の依存関係であるプロジェクトの開発依存関係に対してのみ発生します。
私の場合、他の依存関係は「@ types / node」を依存関係として追加しますが、私のプロジェクトではそれをdev依存関係として持っています:
依存関係「a」のpackage.json:
{
name: "a",
dependencies: {
"@types/node": ">=5.10"
}
}
私のプロジェクト:
{
dependencies: {
"a": "1.0.0"
},
devDependencies: {
"@types/node": "^12.0.0",
"somethingElse": "1.0.0"
}
}
npm update --depth=99
、devフラグはsomethingElse
では問題ありませんが、 @type/node
間違っています
編集: npm install
は、 @types/node
をルートのdev依存関係として+コンポーネント "a"のネストされたnode_moduleの依存関係として格納しているようです。
npm update
、ルートでの依存関係として1回だけインストールします
最も参考になるコメント
重複した問題を準備したようです
何/なぜ
コマンド
npm update --depth <number>
は、更新されたdevDependencies依存関係のdev: true
を失います。いつ
npm update --depth <number>
を使用するときはいつでもどこ
どうやって
現在の動作
更新されたdevDependenciesの依存関係に対して
dev: true
が失われます再現する手順
loses-dev-for-dev-deps
npm i
実行しますnpm update --depth 7
実行します予想される行動
このアクションは、更新されたdevDependenciesの依存関係に対して
dev: true
を保持する必要があると思います参考文献
おそらく#944に関連している