我正在使用NodeJS中的CLI工具,该工具使用我们开发的另一个NodeJs包,它是一个SDK.
问题是,我们刚刚发布了该SDK的V2版本,我们希望为CLI用户提供遗留模式,因此他们可以使用SDK的第一版或第二版,如下所示:
$ cli do-stuff
#execute sdk v2
Run Code Online (Sandbox Code Playgroud)
要么
$ LEGACY_MODE='on' cli do-stuff
#execute sdk v1
Run Code Online (Sandbox Code Playgroud)
我的问题是我没有找到任何干净的方法在我的CLI中使用相同依赖的两个版本.我试着使用npm-install-version包.它在我的本地环境中运行良好,但在发布我的cli并执行后npm install -g my-cli,它不再起作用,因为它在当前文件夹而不是文件夹中创建了node_modules文件/usr/local/lib/node_modules/my-cli夹.我也试过multidep,我有同样的问题.
现在,我的package.json根本不包含我的sdk,但我希望有类似的东西:
"dependencies": {
"my-sdk": "2.0.0"
"my-sdk-legacy": "1.0.0"
}
Run Code Online (Sandbox Code Playgroud)
要么
"dependencies": {
"my-sdk": ["2.0.0", "1.0.0"]
}
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何其他东西.我正在考虑使用其他名称发布我的sdk软件包的第一个版本,例如"my-sdk-legacy",但我想尽可能避免这种情况.
任何解决方案?