升级CMD至7.6.0.87后出现C1005 Closure Compiler解析错误求助
解决CMD升级后YUI压缩器触发Closure Compiler C1005语法解析警告
问题分析
CMD 7.6.0.87版本对YUI压缩器的集成逻辑发生了变化——即便配置的是yui类型压缩器,底层也引入了Closure Compiler的语法检查环节,且新版本的检查规则比7.4.0.39更严格,导致代码中原本未被检测到的非标准语法、基础语法错误触发了C1005警告。
解决方案
排查代码语法问题
优先检查代码本身的语法合规性:- 是否使用ECMAScript保留字作为变量/函数名
- 存在未闭合的括号、引号,或缺失分号等基础语法错误
- 是否使用了YUI压缩器不兼容的ES6+语法(YUI对ES6支持有限,需转译为ES5)
调整YUI压缩器配置
在CMD的压缩器配置中添加YUI特定参数,关闭严格语法检查或调整检查规则:"compressor": { "type": "yui", "options": { "strict": false, "disableOptimizations": true } }参数可根据需求调整,重点关闭与语法解析相关的严格校验项。
切换至其他压缩器
若YUI与新版CMD的兼容性问题无法快速解决,可临时切换到uglify压缩器验证问题是否消失:"compressor": { "type": "uglify" }Uglify对现代JS语法兼容性更好,与新版CMD的集成稳定性更高。
回退压缩器依赖版本
若CMD允许自定义压缩器依赖,可将YUI Compressor版本回退至与CMD 7.4.0.39兼容的版本,规避新版本的语法检查规则变化。
内容的提问来源于stack exchange,提问作者Luca Migliori
相关产品推荐
相关产品推荐

