在'ng build --prod'之后如何使我的角度应用程序使用编辑的配置文件

时间:2019-11-26 06:25:51

标签: javascript angular typescript

我正在使用ng build --prod部署有角度的应用程序。我只想让使用dist文件夹的用户可以在config.json文件夹中的asset文件中进行更改,以便他可以设置自己的设置,而我的应用将使用修改后的{{ 1}}文件。

运行config.json后,是否可以在build文件夹中有一个ng build --prod文件供用户直接修改?

如果没有,是否有更好的方法来使用另一种策略来实现这一目标?

3 个答案:

答案 0 :(得分:0)

如果我正确理解,则希望根据环境更改很少的配置参数。有两种方法

  1. 按照您的描述创建config.json文件,应该使用HttpClientModule来获取它。

  2. 您可以创建一个脚本来保存环境变量。在同一脚本中,您可以使用自定义Webpack配置来构建Angular项目。您可以在https://www.youtube.com/watch?v=BU5G_i1J5CA

  3. 中找到详细的说明

免责声明:该视频是我创建的。

答案 1 :(得分:0)

是的,这很有可能。我建议的最佳解决方案是

config.json保留在资产文件夹中。由于assets文件夹始终被复制到dist文件夹。因此,每次创建构建版本时,config.json都将在dist下的该资产文件夹内可用。 您可以随意编辑它。

您可以遵循的另一种方法是将config.json保留在src文件夹中,并根据cli的版本将其保存在angular-cli.jsonangular.json}中,并将其包含在资产数组中。像下面一样

angular-cli.json

  "assets": [
        "assets",
        "favicon.ico",
        "config.json"
      ],

angular.json

"assets": [
    "src/favicon.ico",
     "src/assets",
     "src/.htaccess",
      "src/config.json"
  ],

See for more

希望这会有所帮助:)

答案 2 :(得分:0)

我了解您要加载类似于environment.ts文件的配置。 environment。*。ts文件的优点是,它在编译时嵌入到产品中。因此,您将无法在运行时进行更改。为此,您创建了一个单独的配置json文件,可以在应用程序使用“ APP_INITIALIZER”启动后立即加载该文件。

我认为这个stackblitz示例将有所帮助。

https://stackblitz.com/edit/angular-load-config-on-init