【问题标题】:Install different version of npm packages in package.json conditionally有条件地在 package.json 中安装不同版本的 npm 包
【发布时间】:2021-03-28 09:10:12
【问题描述】:

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

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

即:

npm install --local

而我的 package.json 看起来像:

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

【问题讨论】:

    标签: javascript npm dependencies package.json


    【解决方案1】:

    npm 不适应这种情况(老实说,可能不应该)。这似乎是通常在运行时通过NODE_ENV 环境变量或类似机制处理的类型。模块会根据 NODE_ENV 设置为 "production" 还是 "development" 来更改行为。 (但这只是惯例。如果需要,您可以使用 "local" 之类的值。)因此,与其安装不同版本的模块,不如根据该环境变量的值有一个行为不同的版本。

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

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2018-06-05
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2017-02-10
      • 2022-08-18
      • 1970-01-01
      相关资源
      最近更新 更多