在 运行 npm 脚本命令时覆盖 package.json 键

Overriding package.json keys while running npm script command

我有电子申请。

我的 package.json 有一些特定于应用程序的设置,例如 serverUrltype_of_application 等。我在应用程序中使用这些设置。

使用 electron-builder 构建应用程序时,我想用不同的值覆盖这些配置键值。

我将为不同的 type_of_application 构建具有不同 serverUrl 的相同应用程序。也有可能这些将安装在同一台机器上,所以我也想更改包 nameproductName 不同版本的键值。

所以我的目标是拥有包含所有这些设置的单独配置文件,以构建具有不同设置的应用程序。在构建时,我将使用其中一个配置文件,它应该覆盖 package.json 文件中的默认配置。

一种可能性是为不同类型的构建提供完整的 package.json,但在那种情况下 dependencies 等密钥也将被复制,这在添加新依赖项时将难以管理.

有什么办法可以实现吗?

一种策略是将所有特定于应用程序的配置保存在一个或多个单独的配置文件中,您的应用程序将在启动时加载这些配置文件。

我倾向于将此类文件保存在 APP_HOMEDIR/etc(向我的 Unix 根基致敬)下,根据您需要的每个应用程序环境命名。

更新

对于使用 electron-builder 的 Electron 应用程序开发,存在一个配置密钥 extraMetadata,允许您在每个构建中注入 package.json 中设置的值。

有关详细信息,请参阅 electron-builder configuration

(感谢 OP Harshveer Singh 建议此更新。)