Angular升级至14后如何映射ng b --prod为新版生产构建指令
Angular 14 兼容旧
ng b --prod构建指令方案 不需要修改框架源码,也别用降级Angular CLI的方式实现兼容,大版本不匹配会引出更多莫名其妙的构建问题,两种无坑方案按需选择即可:
- 项目级团队共享方案(首推,所有拉取代码的成员无需额外配置就能适配旧操作习惯)
打开项目根目录的package.json,找到scripts字段,新增一条脚本配置:
配置后执行{ "scripts": { // 保留原有其他脚本,新增下面这行即可 "b:prod": "ng build --configuration=production" } }npm run b:prod就能触发生产构建,如果团队完全不想改变敲命令的肌肉记忆,也可以根据自己的输入习惯自定义脚本名,本质就是给长指令做了短别名封装。 - 个人本地全局兼容方案
如果你想在自己的开发机上,让所有Angular 14+项目都能直接识别ng b --prod指令,直接给终端加命令拦截逻辑即可:- 找到当前使用shell的配置文件:zsh对应
~/.zshrc,bash对应~/.bashrc,Windows PowerShell对应该终端的个人配置文件路径 - 在文件末尾添加如下函数配置:
ng() { # 拦截ng b --prod指令自动替换为新版本生产构建命令,其余参数正常透传 if [[ "$1" == "b" && "$2" == "--prod" ]]; then command ng build --configuration=production "${@:3}" else # 其余ng指令保持原逻辑不变 command ng "$@" fi }- 保存文件后执行
source ~/.zshrc(或对应shell的配置刷新命令),之后直接输入ng b --prod就会自动执行等价的生产构建指令,后面追加的--watch、--output-path等自定义参数都能正常透传,不会影响其他ng命令的正常使用。
- 找到当前使用shell的配置文件:zsh对应
踩坑提示:不要尝试通过修改
angular.json里build目标的默认配置实现兼容,会导致日常开发时执行普通ng b也直接走生产构建逻辑,构建速度慢还会丢失开发环境的调试配置,影响开发效率。
内容的提问来源于stack exchange,提问作者taylorswiftfan
相关产品推荐
相关产品推荐

