Sencha cmd,闭包编译错误:如何定位有问题的代码

时间:2017-12-26 13:58:56

标签: javascript extjs google-closure-compiler sencha-cmd

运行Sencha cmd 6.5时,我收到以下错误:

  

[错误] C2001:关闭编译器错误(解析错误。未定义标签“f”) - 压缩输入:1:4095

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

当我使用以下内容在app.json中添加自定义javascript文件时会发生这种情况:

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

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

如果我正确解释错误,则意味着闭包编译器在{1}的第1行(字符4095)上发现错误。但compression-input的第一行并不长。

如何找到有问题的代码?

顺便说一句,闭包编译器中的custom.js是什么?

2 个答案:

答案 0 :(得分:2)

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

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

在我的情况下,Ext.define应该是Ext.create,并且抛出语法错误,因为Ext.define的使用在生成{{1}期间被重写到其他命令中}。也许如果你专门寻找它,你可以找到它。

答案 1 :(得分:1)

我也遇到过类似的问题。 我在 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