Angular 9构建多环境配置:自动切换config.json方案咨询
完全可行!这绝对是个更优雅的解决方案,能彻底告别手动注释切换路径的麻烦。我来给你一步步拆解怎么实现:
实现步骤
1. 整理配置文件位置
建议把开发和生产用的配置文件集中放到项目的src目录下,比如新建一个src/configs文件夹,把原来的dev/config.json改名为src/configs/dev-config.json,prod/config.json改名为src/configs/prod-config.json——当然你也可以保持原路径,但放到src下更符合Angular的构建规范,避免额外配置。
2. 修改angular.json配置自动复制并重命名
打开项目根目录的angular.json,找到你的项目配置节点(一般和项目名一致),定位到architect > build > configurations,这里有development和production两个环境配置:
针对开发环境(development)
在assets数组里添加以下配置,把开发用的配置文件复制到输出目录的config文件夹下,并重命名为config.json:
{ "input": "src/configs/dev-config.json", "output": "/config/", "rename": "config.json" }
针对生产环境(production)
同样在production配置的assets数组里添加:
{ "input": "src/configs/prod-config.json", "output": "/config/", "rename": "config.json" }
注意:如果你的
assets数组里原来有复制整个目录的规则(比如"src/assets"),确保新添加的规则不会和它冲突,一般放在数组前面或者单独配置都没问题。
3. 统一代码里的配置路径
把你代码里的路径改成固定的:
this.configPath = '/config/config.json';
4. 测试验证
- 运行本地开发命令
ng serve,启动后可以在浏览器的开发者工具里查看网络请求,确认加载的/config/config.json是开发环境的配置内容; - 执行生产构建
ng build --prod,打开dist目录下的config/config.json,检查是否是生产环境的配置内容。
这样每次构建或启动开发服务器时,Angular都会自动根据当前环境复制对应的配置文件,你再也不用手动切换路径啦!
内容的提问来源于stack exchange,提问作者doorman
相关产品推荐
相关产品推荐

