Angenommen, Sie möchten eine Bibliothek lib-a
mit den Abhängigkeiten dep-1
und dep-2
installieren. Wenn lib-a
in seiner package.json deklariert hat, eine Version von dep-2
zu verwenden, die veraltet ist (sagen, dass es nicht auf Knoten 0.8.0 funktioniert, der gerade herauskam), aber es gibt eine Verzweigung dep-2
, die mit Knoten 0.8 funktioniert .0 - Filialname node0.8.0
.Wenn Sie ein Paket mit NPM installieren, können Sie ihm mitteilen, dass es eine andere Version einer seiner Abhängigkeiten verwenden soll?
So sind die Pakete in der Gleichung sind:
git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0
Gibt es eine Möglichkeit zu sagen, NPM lib-a
, zu installieren, aber dep-2#node0.8.0
statt dep-2
benutzen?
Mit NPM können Sie einen bestimmten Zweig eines Projekts wie folgt installieren:
npm install git://github.com/user-c/dep-2#node0.8.0
Und wenn ich die package.json von lib-a
anzupassen waren, können Sie es dep-2#node0.8.0
wie folgt zu verwenden sagen könnte:
{
"name": "lib-a",
"dependencies": {
"dep-1": ">= 1.5.0",
"dep-2": "git://github.com/user-c/dep-2#node0.8.0"
}
}
Durch die package.json modifizieren können Sie dann laufen
npm install lib-a
und es wird der Knoten 0.8.0 kompatibel dep-2
Zweig installiert. Aber, das erfordert, ich habe Zugriff auf die Änderung lib-a
, die für meinen speziellen Fall nicht ich. Technisch könnte ich lib-a
fork und die obige Änderung zu package.json machen. Aber in meinem speziellen Fall ist lib-a
eine Abhängigkeit von anderen Bibliothek, so würde ich an das Projekt gabele es referenziert in, und so weiter ...
Die Frage ist also, ist es eine Möglichkeit, NPM anweisen, lib-a
zu installieren, und ihm den node0.8.0
-Zweig von dep-2
mitteilen? Etwas wie dieses:
npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0
Das wäre genial. Wenn es nicht möglich ist, wäre das gut zu wissen, damit ich mich darauf vorbereiten kann, die Projektkette anzupassen/anzupassen.
Es sieht aus, wie wenn Sie die Abhängigkeit zuerst installieren, dann die anderen Bibliotheken, die erforderlich Diese Abhängigkeit lädt nicht ihre eigenen herunter. Das löst das Problem! Vielen Dank! –
Stimmt das? Ich probierte npm -g install/Pfad/zu/meinem/fork-with-fix und dann npm -g installieren Paket-welche-sollte-verwenden-gegabelte-Abhängigkeit-mit-fix und ... es lädt noch offizielle Version. –
Werfen Sie einen Blick auf 'npm link'. – knownasilya