我正在使用ng build --prod
部署有角度的应用程序。我只想让使用dist
文件夹的用户可以在config.json
文件夹中的asset
文件中进行更改,以便他可以设置自己的设置,而我的应用将使用修改后的{{ 1}}文件。
运行config.json
后,是否可以在build文件夹中有一个ng build --prod
文件供用户直接修改?
如果没有,是否有更好的方法来使用另一种策略来实现这一目标?
答案 0 :(得分:0)
如果我正确理解,则希望根据环境更改很少的配置参数。有两种方法
按照您的描述创建config.json文件,应该使用HttpClientModule来获取它。
您可以创建一个脚本来保存环境变量。在同一脚本中,您可以使用自定义Webpack配置来构建Angular项目。您可以在https://www.youtube.com/watch?v=BU5G_i1J5CA
免责声明:该视频是我创建的。
答案 1 :(得分:0)
是的,这很有可能。我建议的最佳解决方案是
将config.json
保留在资产文件夹中。由于assets
文件夹始终被复制到dist文件夹。因此,每次创建构建版本时,config.json
都将在dist下的该资产文件夹内可用。
您可以随意编辑它。
您可以遵循的另一种方法是将config.json保留在src
文件夹中,并根据cli的版本将其保存在angular-cli.json
或angular.json
}中,并将其包含在资产数组中。像下面一样
angular-cli.json
"assets": [
"assets",
"favicon.ico",
"config.json"
],
angular.json
"assets": [
"src/favicon.ico",
"src/assets",
"src/.htaccess",
"src/config.json"
],
希望这会有所帮助:)
答案 2 :(得分:0)
我了解您要加载类似于environment.ts文件的配置。 environment。*。ts文件的优点是,它在编译时嵌入到产品中。因此,您将无法在运行时进行更改。为此,您创建了一个单独的配置json文件,可以在应用程序使用“ APP_INITIALIZER”启动后立即加载该文件。
我认为这个stackblitz示例将有所帮助。