将自定义环境参数传递给@angular-builders/custom-webpack

Pass custom environment parameters to @angular-builders/custom-webpack

在我们的 Angular 9 应用程序中,我们在 angular.json 中配置了多个环境。

我们还使用@angular-builders/custom-webpack 添加一些自定义插件,这些插件需要一些基于环境的输入变量,但是如果我将自定义 属性 添加到环境节点,我会收到此错误:

Data path "" should NOT have additional properties(customPluginConfigForSandboxEnvironment)

"architect": {
   "build": {
     "configurations": {
       "sandbox": {
        "outputPath": ....,
        "customPluginConfigForSandboxEnvironment": {}

有没有可能做这样的事情?

在 customWebpackConfig 文件中,我可以从选项中读取输出路径

 module.exports = (config, options) => {

并在此处保存我的额外配置,但如果可能的话,我更愿意将所有配置保留在 angular.json 中。

谢谢

您可以使用两个单独的配置文件:

{
  ...
  "projects": {
    "your-app": {
      ...
      "architect": {
        "build": {
          "builder": "@angular-builders/custom-webpack:browser",
          "options": {
            "customWebpackConfig": {
              "mergeRules": {
                "externals": "replace"
              }
            },
            ...
          },
          "configurations": {
            "production": {
              "customWebpackConfig": {
                "path": "./webpack.config.prod.ts"
              },
              ...
            },
            "development": {
              "customWebpackConfig": {
                "path": "./webpack.config.dev.ts"
              }
            }
          },
          ...
        }
      }
    }
  }
}