Deux versions d'un même package npm dans le Nœud de l'application

Je suis en train de travailler sur un outil CLI en NodeJS qui utilise un autre NodeJs package que nous développons, qui est un kit de développement SDK.

La chose est, nous venons de publier une version V2 de ce SDK, et nous voulons offrir à la CLI de l'utilisateur un mode legacy, de sorte qu'ils peuvent utiliser soit la première ou la deuxième version de notre SDK, comme suit:

$ cli do-stuff
#execute sdk v2

Ou

$ LEGACY_MODE='on' cli do-stuff
#execute sdk v1

Mon problème est que je n'ai pas trouvé de moyen propre à l'utilisation de deux versions de la même dépendance dans mon CLI.
J'ai essayé d'utiliser npm-installer-version paquet. Il fonctionne bien sur mon environnement local, mais après la publication de mon cli et de faire npm install -g my-cli, il ne fonctionne plus, car il crée un dossier node_modules dans le dossier en cours, au lieu de la /usr/local/lib/node_modules/my-cli dossier.
J'ai aussi essayé multidep, et j'ai un peu le même problème.

Pour l'instant, mon paquet.json ne contiennent pas du tout mon sdk, mais je voudrais avoir quelque chose comme :

"dependencies": {
  "my-sdk": "2.0.0"
  "my-sdk-legacy": "1.0.0"
}

Ou

"dependencies": {
  "my-sdk": ["2.0.0", "1.0.0"]
}

Je n'ai pas trouvé autre chose pour l'instant. Je suis en train de penser à propos de la publication de la première version de mon sdk paquet avec un autre nom, comme "mon-sdk-legacy", mais je voudrais éviter si possible.

Aucune solution pour que ?

InformationsquelleAutor Greg | 2017-05-03