Я работаю над инструментом CLI в NodeJS, который использует другой пакет NodeJs, который мы разрабатываем, который является SDK.
Дело в том, что мы только что опубликовали версию V2 этого SDK, и мы хотим предложить пользователю CLI устаревший режим, поэтому они могут использовать либо первую, либо вторую версию нашего SDK, например:
$ cli do-stuff
#execute sdk v2
или
$ LEGACY_MODE='on' cli do-stuff
#execute sdk v1
Моя проблема в том, что я не нашел никакого чистого способа использовать две версии одной и той же зависимости в моем CLI.
Я попытался использовать пакет npm-install-version. Он хорошо работает в моей локальной среде, но после публикации моего cli и выполнения npm install -g my-cli
он больше не работает, потому что он создает папку node_modules в текущей папке вместо папки /usr/local/lib/node_modules/my-cli
.
Я также пробовал multidep, и у меня есть одна и та же проблема.
На данный момент мой пакет .json вообще не содержит моего sdk, но я хотел бы иметь что-то вроде:
"dependencies": {
"my-sdk": "2.0.0"
"my-sdk-legacy": "1.0.0"
}
или
"dependencies": {
"my-sdk": ["2.0.0", "1.0.0"]
}
Я еще ничего не нашел. Я думаю о публикации первой версии моего пакета sdk с другим именем, например "my-sdk-legacy", но я хотел бы избежать этого, если это возможно.
Любое решение для этого?