Angular 10禁用差异加载仍生成ES5打包文件问题求助
解决Angular 10仅生成ES2015+打包文件的问题
针对你遇到的配置后仍生成ES5打包文件的问题,按以下步骤排查解决:
1. 修改angular.json的构建核心配置
Angular CLI默认开启差异加载(differential loading),会同时生成ES5和ES2015版本以兼容新旧浏览器。要仅输出现代浏览器支持的ES2015+代码,需修改项目根目录的angular.json:
找到projects -> [你的项目名称] -> architect -> build -> options,添加或调整以下配置:
{ "target": "es2015", "differentialLoading": false, "polyfills": "src/polyfills.ts" }
target: es2015:明确告诉CLI编译目标为ES2015differentialLoading: false:关闭差异加载,不再生成ES5版本
2. 验证browserslist配置有效性
你的.browserslistrc配置supports es6-module是正确的,但需要确认Angular能正确识别。在项目根目录运行命令:
npx browserslist
输出结果应全部为支持ES6模块的现代浏览器(如Chrome 61+、Firefox 60+等),如果输出异常,检查文件是否在根目录、有无语法错误。
3. 确保tsconfig配置未被覆盖
你的根tsconfig.json已设置target: es2015和module: ESNext,但需检查项目内的tsconfig.app.json(如果存在),确保它没有覆盖这些配置:tsconfig.app.json的compilerOptions应继承根配置或直接设置一致的参数:
{ "extends": "./tsconfig.json", "compilerOptions": { "target": "es2015", "module": "ESNext" } }
4. 清理缓存后重新构建
缓存可能导致配置不生效,执行以下命令清理并重新构建生产版本:
ng clean ng build --prod
构建完成后,查看dist目录下的JS文件,检查是否使用了箭头函数、let/const等ES2015+特性,确认已不再生成ES5代码。
内容的提问来源于stack exchange,提问作者YSFKBDY
相关产品推荐
相关产品推荐

