Ab npm cli v8.3.0 (2021-12-09) kann dieses Problem mit der overrides
Feld von package.json . Wie beschrieben in Antwort von StriplingWarrior
Zum Beispiel hat das Projekt typescript
Version 4.6.2
als direkt Abhängigkeit von der Entwicklung und awesome-typescript-loader
die alte Version verwendet 2.7
de typescript
. So können Sie erkennen npm
Version zu verwenden 4.6.2
de typescript
für 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"
}
}
}
Wenn Sie nicht typescript
als direkt Entwicklungsabhängigkeit, dann müssen Sie schreiben 4.6.2
anstelle von $typescript
en overrides
Abschnitt:
{
"name": "myproject",
"version": "0.0.0",
"scripts": ...
"dependencies": ...
"devDependencies": {
"awesome-typescript-loader": "^5.2.1",
...
},
"overrides": {
"awesome-typescript-loader": {
"typescript": "~4.6.2"
}
}
}
Für die Verwendung der neuesten Version der Abhängigkeiten:
{
"name": "myproject",
"version": "0.0.0",
"scripts": ...
"dependencies": ...
"devDependencies": {
"awesome-typescript-loader": "^5.2.1",
...
},
"overrides": {
"awesome-typescript-loader": {
"typescript": "latest"
}
}
}
Gleiche overrides
kann für beides verwendet werden dependencies
y devDependencies
.
Wenn Sie eine npm-Version >5 aber <8.3.0 verwenden: Bearbeiten Sie Ihre package-lock.json
: Entfernen Sie die Bibliothek aus "requires"
und fügen Sie sie unter "Abhängigkeiten" hinzu.
Sie möchten zum Beispiel deglob
Paket zu verwenden glob
Paket-Version 3.2.11
anstelle des aktuellen. Sie öffnen package-lock.json
und sehen:
"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"
}
},
entfernen "glob": "7.1.2",
von "requires"
, hinzufügen "dependencies"
mit der richtigen Version:
"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"
}
}
},
Entfernen Sie nun Ihre node_modules
Ordner, führen Sie npm ci
(o npm install
für alte Versionen von node/npm) und fügt die fehlenden Teile der "dependencies"
Abschnitt.