Cli: [バグ] npm update--depthは依存関係を壊します

作成日 2019年12月17日  ·  4コメント  ·  ソース: npm/cli

何/なぜ

NPMは、再帰的/詳細な更新を実行した後、満たされていない依存関係を報告します

いつ


どこ



  • 該当なし

どうやって

現在の動作

再現する手順

  1. ローカルにフォルダを作成し、 npm initを実行します
  2. npm i -D @semantic-release/exec 、複数のレベルの依存関係を持つパッケージをインストールします
  3. 深い依存関係の1つが新しいバージョンを取得するのを待ちます
  4. npm --depth 9999 update実行します

予想される行動

  • 満たされていない依存関係があってはなりません。 更新は、親のpackage.jsonファイルまたは祖先のnpm-shrinkwrap.jsonに従って実行されます。
  • つまり、 package-lock.jsonがないかのように動作し、すべての依存関係の解決に進み、必要に応じてインストール/更新/削除してから、解決されたツリーでロックファイルを更新する必要があります。

WHO



  • 該当なし

参考文献



  • 該当なし

Bug

最も参考になるコメント

重複した問題を準備したようです

何/なぜ

コマンドnpm update --depth <number>は、更新されたdevDependencies依存関係のdev: trueを失います。

いつ

  • devDependenciesの新しい依存関係がないパッケージにnpm update --depth <number>を使用するときはいつでも

どこ

  • npmパブリックレジストリ

どうやって

現在の動作

更新されたdevDependenciesの依存関係に対してdev: trueが失われます

再現する手順

  1. このリポジトリを取得するhttps://github.com/pahan35/npm-bugs
  2. チェックアウトブランチloses-dev-for-dev-deps
  3. npm i実行します
  4. npm update --depth 7実行します

予想される行動

このアクションは、更新されたdevDependenciesの依存関係に対してdev: trueを保持する必要があると思います

参考文献

おそらく#944に関連している

全てのコメント4件

重複した問題を準備したようです

何/なぜ

コマンドnpm update --depth <number>は、更新されたdevDependencies依存関係のdev: trueを失います。

いつ

  • devDependenciesの新しい依存関係がないパッケージにnpm update --depth <number>を使用するときはいつでも

どこ

  • npmパブリックレジストリ

どうやって

現在の動作

更新されたdevDependenciesの依存関係に対してdev: trueが失われます

再現する手順

  1. このリポジトリを取得するhttps://github.com/pahan35/npm-bugs
  2. チェックアウトブランチloses-dev-for-dev-deps
  3. npm i実行します
  4. 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回だけインストールします

このページは役に立ちましたか?
0 / 5 - 0 評価