Sencha cmd, closure compiler error: how to locate the offending code

Sencha cmd, closure compiler error: how to locate the offending code

当运行 Sencha cmd 6.5 时,出现以下错误:

[ERR] C2001: Closure Compiler Error (Parse error. undefined label "f") -- compression-input:1:4095

如何在 compression-input:1:4095 找到代码?

当我在 app.json 中包含自定义 javascript 文件时会发生这种情况:

"js": [
    {
        "path": "app.js",
        "bundle": true
    },{
        "path": "custom.js",
        "includeInBundle": true
    }
],

当我删除 app.json 中对 custom.js 的引用时,错误消失了。

如果我正确解释错误,则意味着闭包编译器在第 1 行,compression-input 的第 4095 个字符处发现错误。但是custom.js的第一行没那么长。

如何找到违规代码?

顺便问一下,闭包编译器中的 undefined label 是什么?

我一年前遇到过同样的问题,我被告知你无法从错误消息中找到它。

假设您已经尝试在浏览器中直接打开未编译的项目,并且没有出现语法错误,除了通过将 custom.js 内容一分为二进一步缩小范围之外,您无能为力零件并独立检查这些。

在我的例子中它是 Ext.define 而应该是 Ext.create,并且抛出语法错误是因为 Ext.define 的用法在 [=] 的生成过程中被重写为其他命令13=]。也许如果你专门找这个,你可以找到它。

我也遇到过类似的问题。 我在 app.json 文件中禁用了压缩:

"testing": {
   "compressor": {
     //"type": "closure",
     "type": "none",
     "warningLevel": "quiet"
   },
   "output": "...."
}

并且我单独用编译器检查了输出的app.js文件(可以下载):

java -jar closure-compiler-v20210302.jar --js app.js --js_output_file compiled_output.js