NPM パッケージを使用したいと思いますgrunt-contrib-jasmine
。さまざまな依存関係があります。依存関係グラフの一部は次のようになります。
─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
残念ながら、このバージョンには Mac OS X に正しくインストールできないバグがあります。phantomjs
これは最新バージョンで修正されています。
grunt-lib-phantomjs
の新しいバージョンを使用するにはどうすればいいですかphantomjs
?
追加のコンテキスト:
grunt-contrib-jasmine
"~0.2.0"
には のバージョンが明示的に必要でありgrunt-lib-phantomjs
、 には"~1.8.1"
のバージョンが明示的に必要ですphantomjs
。phantomjs
最初にパッケージの依存関係を追加しても効果はありません。両方のバージョンがインストールされ、grunt-contrib-jasmine
古いバージョンが引き続き使用されます (参照:NPM を使用してパッケージをインストールするときに、依存関係の 1 つについて別のバージョンを使用するように指示できますか?)。
ベストアンサー1
npm cliの時点バージョン8.3.0(2021-12-09) これは、overrides
分野package.jsonの。StriplingWarriorの回答
たとえば、プロジェクトには直接の開発依存関係としてtypescript
バージョンがあり、の古いバージョンを使用しています。にのバージョンを使用するように指示する方法は次のとおりです。4.6.2
awesome-typescript-loader
2.7
typescript
npm
4.6.2
typescript
awesome-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
$typescript
overrides
{
"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
を使用できます。dependencies
devDependencies
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"
。