Pracuję nad narzędziem CLI w NodeJS, które wykorzystuje inny pakiet NodeJs, który rozwijamy, czyli SDK.Dwie wersje tego samego pakietu NPM w aplikacji Node
Rzecz w tym, że właśnie opublikował wersję V2 tego SDK i chcemy zaoferować użytkownikowi CLI trybu legacy, więc mogą używać zarówno pierwszą lub drugą wersję SDK, tak:
$ cli do-stuff
#execute sdk v2
Albo
$ LEGACY_MODE='on' cli do-stuff
#execute sdk v1
moim problemem jest to, że nie znaleziono żadnych czystą drogę do korzystania z dwóch wersji tego samego uzależnienia w moim CLI. Próbowałem użyć pakietu npm-install-version. Działa dobrze na moim lokalnym środowisku, ale po opublikowaniu mojego cli i wykonaniu npm install -g my-cli
, to już nie działa, ponieważ tworzy folder node_modules w bieżącym folderze zamiast folderu /usr/local/lib/node_modules/my-cli
. Próbowałem również multidep i mam tego samego problemu.
Na razie mój package.json nie zawierają w ogóle mojego SDK, ale chciałbym mieć coś takiego:
"dependencies": {
"my-sdk": "2.0.0"
"my-sdk-legacy": "1.0.0"
}
Albo
"dependencies": {
"my-sdk": ["2.0.0", "1.0.0"]
}
nie znalazłem niczego innego jeszcze. Zastanawiam się nad opublikowaniem pierwszej wersji mojego pakietu SDK z inną nazwą, np. "My-sdk-legacy", ale chciałbym tego uniknąć, jeśli to możliwe.
Jakieś rozwiązanie tego?
Próbowałem drugiej wersji, ale chodzi o to, że npm nie zmienia nazwy folderu po kasie z git. W folderze '' 'node_modules''' znajduje się tylko jeden folder o nazwie" my-sdk ". Tak więc poniższy kod nie działa ani ' ' '' require ('my-sdk-v1'); '' ' Ale mogę zrobić' '' require ('my-sdk'); '' ' myślę, że pozostanę przy pierwszej wersji, nawet jeśli będzie to dla mnie trochę mniej wygodne. Dzięki – Greg