ネストされた NPM 依存関係バージョンをオーバーライドするにはどうすればよいですか? 質問する

ネストされた NPM 依存関係バージョンをオーバーライドするにはどうすればよいですか? 質問する

NPM パッケージを使用したいと思いますgrunt-contrib-jasmine。さまざまな依存関係があります。依存関係グラフの一部は次のようになります。

─┬ [email protected]
 │ ├─┬ [email protected]
 │ │ ├─┬ [email protected]

残念ながら、このバージョンには Mac OS X に正しくインストールできないバグがあります。phantomjsこれは最新バージョンで修正されています。

grunt-lib-phantomjsの新しいバージョンを使用するにはどうすればいいですかphantomjs?

追加のコンテキスト:

ベストアンサー1

npm cliの時点バージョン8.3.0(2021-12-09) これは、overrides分野package.jsonStriplingWarriorの回答

たとえば、プロジェクトには直接の開発依存関係としてtypescriptバージョンがあり、の古いバージョンを使用しています。にのバージョンを使用するように指示する方法は次のとおりです。4.6.2awesome-typescript-loader2.7typescriptnpm4.6.2typescriptawesome-typescript-loader

{
  "name": "myproject",
  "version": "0.0.0",
  "scripts": ...
  "dependencies": ...
  "devDependencies": {
    "typescript": "~4.6.2",
    "awesome-typescript-loader": "^5.2.1",
    ...
  },
  "overrides": {
    "awesome-typescript-loader": {
      "typescript": "$typescript"
    }
  }
}

直接的なtypescript開発依存関係として使用しない場合は、セクションの代わりに次のように記述する必要があります。4.6.2$typescriptoverrides

{
  "name": "myproject",
  "version": "0.0.0",
  "scripts": ...
  "dependencies": ...
  "devDependencies": {
    "awesome-typescript-loader": "^5.2.1",
    ...
  },
  "overrides": {
    "awesome-typescript-loader": {
      "typescript": "~4.6.2"
    }
  }
}

最新バージョンの依存関係を使用する場合:

{
  "name": "myproject",
  "version": "0.0.0",
  "scripts": ...
  "dependencies": ...
  "devDependencies": {
    "awesome-typescript-loader": "^5.2.1",
    ...
  },
  "overrides": {
    "awesome-typescript-loader": {
      "typescript": "latest"
    }
  }
}

との両方に同じものoverridesを使用できます。dependenciesdevDependencies


npm バージョン 5 より前、かつ 8.3.0 より前を使用している場合は、次の項目を編集します。セクションpackage-lock.jsonからライブラリを削除し"requires"、「dependencies」の下に追加します。

たとえば、deglobパッケージが現在のバージョンではなくglobパッケージ バージョンを使用するようにしたいとします3.2.11。開くpackage-lock.jsonと、次のメッセージが表示されます。

"deglob": {
  "version": "2.1.0",
  "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz",
  "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=",
  "requires": {
    "find-root": "1.1.0",
    "glob": "7.1.2",
    "ignore": "3.3.5",
    "pkg-config": "1.1.1",
    "run-parallel": "1.1.6",
    "uniq": "1.0.1"
  }
},

"glob": "7.1.2",から削除し"requires""dependencies"適切なバージョンで追加します:

"deglob": {
  "version": "2.1.0",
  "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz",
  "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=",
  "requires": {
    "find-root": "1.1.0",
    "ignore": "3.3.5",
    "pkg-config": "1.1.1",
    "run-parallel": "1.1.6",
    "uniq": "1.0.1"
  },
  "dependencies": {
    "glob": {
      "version": "3.2.11"
    }
  }
},

次に、node_modulesフォルダーを削除して実行するとnpm ci(またはnpm install古いバージョンの node/npm の場合)、セクションに不足している部分が追加されます"dependencies"


おすすめ記事