Javascript 有条件地在package.json中安装不同版本的npm包
我正在开发一个使用私有软件包的web应用程序。 在某些情况下,我宁愿使用包的本地版本或该包的不同版本 是否有任何解决方案表明在package.json中使用不同版本的包 i、 e: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
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
看起来更优雅、更传统