Javascript 有条件地在package.json中安装不同版本的npm包

Javascript 有条件地在package.json中安装不同版本的npm包,javascript,npm,dependencies,package.json,Javascript,Npm,Dependencies,Package.json,我正在开发一个使用私有软件包的web应用程序。 在某些情况下,我宁愿使用包的本地版本或该包的不同版本 是否有任何解决方案表明在package.json中使用不同版本的包 i、 e: npm安装--本地 而my package.json看起来像: ... "dependencies": { ... "my_package": if(local) "address_to_local_package/" else "5.6

我正在开发一个使用私有软件包的web应用程序。 在某些情况下,我宁愿使用包的本地版本或该包的不同版本

是否有任何解决方案表明在package.json中使用不同版本的包

i、 e:

npm安装--本地

而my package.json看起来像:

...
"dependencies": { 
...
    "my_package": if(local) "address_to_local_package/" else "5.6.1"
...
}

npm
不能适应这一点(老实说,可能不应该)。这似乎是通常在运行时通过
NODE\u ENV
环境变量或类似机制处理的类型。根据
节点_ENV
是否设置为
“生产”
“开发”
,模块会改变行为。(但这只是惯例。如果需要,您可以使用诸如
“local”
之类的值。)因此,没有安装不同版本的模块,而是有一个版本根据环境变量的值表现出不同的行为

如果您真的希望完全安装不同的代码库,这需要一些努力,但您可以编写一个脚本来运行
npm
。然后,您的模块变成了一个脚本,然后
postinstall
根据环境变量或命令行标志确定实际安装的内容。不过,这对我来说似乎很脆弱。如果你走这条路,我会认真考虑你是否解决了正确的问题
NODE_ENV
看起来更优雅、更传统