2017-08-24 4 views
0

Wenn Sie die Abhängigkeiten eines Debian-Pakets ausdrücken, können Sie die Syntax exim | mail-transport-agent verwenden, um anzugeben, dass Ihr Paket entweder oder mail-transport-agent benötigt, aber es ist egal.Wie kann ich alternative Abhängigkeiten in NPM ausdrücken?

Ich möchte etwas ähnliches in NPM ausdrücken. Gibt es einen Weg, es zu tun? Angenommen, meine Anwendung soll eine Abhängigkeit von entwedermikesthing-impl1 v1.7 besser odermikesthing-impl2 v2.1 oder besser ausdrücken. Ich möchte in der Lage sein, etwas zu sagen wie:

dependencies: { "mikesthing": { "mikesthing-impl1": "^1.7", "mikesthing-impl2": "^2.1" } }

Gibt es eine Möglichkeit?

Antwort

0

Nein, es gibt keine Funktionalität innerhalb einer package.json, um diese Art von Logik anzugeben. Sie können jedoch ein Skript postinstall in scripts implementieren, das ausgeführt wird, nachdem alle anderen Abhängigkeiten installiert wurden und in dem Sie diese Art (oder jede Art von Verhalten) scripten können.

z.B. (In package.json)

"scripts": { 
    "postinstall": "./bin/postinstall" 

Ein guter Anfang ist npm view {package} zu betreiben ein JSON-Objekt zurück zu erhalten, die Details, welche Versionen in der Registrierung zur Verfügung stehen.

+0

Danke für diese schlechten Nachrichten - hey, es ist besser zu wissen, oder? Leider bekomme ich durch ein Postinstall-Skript nicht, was ich in diesem Fall will. Ich könnte ein Skript schreiben, das die Installation des aktuellen Pakets ablehnt, wenn nicht wenigstens eine der alternativen Abhängigkeiten vorhanden ist, aber das wäre eine prozedurale Implementierung. Was ich brauche, ist eine Deklaration - etwas, das anderer Code sehen und verstehen kann. Oh gut. Sie können nicht immer bekommen, was Sie wollen. –

Verwandte Themen