2016-12-18 2 views
0

Lets sagen, ich arbeite an einer Bibliothek, die von anderen Entwicklern verbraucht werden. MyPackage hat eine Abhängigkeit vom Moment. Der Entwickler, der mein Paket verbraucht, hat auch eine Abhängigkeit vom Moment. So wird Moment als eine "Abhängigkeit" sowohl in der Bibliothek package.json als auch in der Anwendung package.json existieren (und somit zweimal verpackt werden). Gibt es eine Möglichkeit, es nur einmal zu packen? Wenn der Verbraucher es hat, benutzen Sie seine, andere benutzen meins?npm package.json Abhängigkeiten - für eine Bibliothek Komponente

+0

Was ist, wenn sie von einer anderen Version abhängen als Sie? Behandle einfach deine eigenen Abhängigkeiten, sorge dich nicht um alle anderen. – jonrsharpe

+0

Ich realisiere. Wenn wir an einer Version standardisieren können Beven können wir die endgültige Nutzlast reduzieren, wenn wir müssen nicht alles mehrfach verpacken. Moment ist nur eine von vielen Abhängigkeiten –

+0

Haben Sie tatsächlich ein Problem mit Ausgabedateigrößen oder etwas? Dies scheint eine vorzeitige Optimierung zu sein. Das heißt, wenn es nur für den internen Gebrauch und jeder ist glücklich, immer die gleiche Version zu verwenden, können Sie eine Peer-Abhängigkeit machen könnte https://nodejs.org/en/blog/npm/peer-dependencies/ – jonrsharpe

Antwort

0

Es passiert bereits standardmäßig bei Neuinstallationen, wenn die Abhängigkeitsbereiche übereinstimmen.

npm v> = 3 macht die Abhängigkeiten, abhängig von der Installationsreihenfolge und Tiefe, siehe here.

Auch wenn Sie eine Weile an demselben Ordner gearbeitet haben, könnte es einige Probleme geben, die mit npm dedupe gelöscht werden können, siehe here.

Theoretisch moment sollte nicht dupliziert werden, wenn sowohl die Bibliothek und die Bibliothek des Entwicklers sind die gleichen Versionsbereiche davon verbrauchen. Zumindest wenn npm dedupe angerufen wird oder node_modules abgewischt werden und npm i -installed.

Verwandte Themen