Angular 13构建vendor.js过大:AWS Linux生产构建未生效
补全构建日志捕获,查看实际执行配置
修改构建脚本,同时捕获标准输出和错误输出:./node_modules/.bin/ng build --configuration=production >> ngbuildlog.txt 2>&1,然后查看日志中是否有明确的配置加载提示(比如Building for "production"),或是命令解析、配置读取的错误信息。验证环境文件替换结果
构建完成后,在dist目录的打包文件中搜索生产环境专属标识(比如environment.prod.ts中定义的production: true),确认是否完成了环境文件替换。若仍为开发环境值,需检查angular.json中fileReplacements的路径是否正确,或配置层级是否错误。确认
angular.json配置层级正确性
检查configurations节点是否位于projects -> [你的项目名] -> architect -> build路径下,配置层级错误会导致--configuration参数无法匹配到目标配置。测试生产构建简写命令
尝试使用./node_modules/.bin/ng build --prod命令构建(Angular 13仍支持该简写),若优化生效,说明原命令可能存在参数拼写或配置名称匹配问题。对齐本地与服务器的依赖版本
对比本地和AWS服务器的Node.js版本(node -v)、@angular/cli版本(./node_modules/.bin/ng version),版本差异可能导致构建行为不一致,需保证两者版本一致。重新安装依赖,排除缺失问题
删除服务器上的node_modules和package-lock.json,执行npm install重新安装依赖后再构建,避免因优化相关依赖(如terser、webpack)缺失导致优化失效。通过打包文件特征判断配置
生产构建应无.map源文件(配置sourceMap: false),且文件名带哈希值(outputHashing: all,如vendor.[hash].js);若dist目录存在.map文件或文件名无哈希,说明确实使用了开发配置。
内容的提问来源于stack exchange,提问作者wil

