运行Sencha Cmd v6.5.3.6时,出现以下错误消息:
[ERR] C2001:Closure Compiler Error(此代码无法从ES6转换。扩展本机类:Array) - compression-input:111263
错误是由以下代码引起的:
class Chains扩展Array {
}
类声明中的方法仍会出现错误。
有没有办法让Sencha Cmd编译这段代码?
更新: 要解决此问题,我将代码更改为:
功能链(){};
Chains.prototype = new Array;
Chains.prototype.anyMethod = function(){}
答案 0 :(得分:1)
我不认为ExtJS目前支持这种语法。目前,您可能必须使用他们的语法:
Ext.define('Chains', {
extend: 'Array'
});
然后在您的代码中,您可以这样称呼它:
var chns = Ext.create('Chains');
chns.push('a');
console.log(chns);
答案 1 :(得分:1)
您使用的是ES6 that cannot be transpiled into pre-ES6 code的功能。
默认情况下,Sencha Cmd会将您的代码转换为ES6之前的代码,因为IE11支持尚未被删除。
您可以按照in the official docs描述的Sencha Cmd 6.5.0开始禁用代码转换:
在某些情况下,您不会需要所有这些转化。也许您的目标是Electron,或者您只支持具有所有这些功能的现代浏览器。您可以禁用转换器,并仍然使用Sencha Cmd代码压缩器对您的本机ES6代码。只需对app.json文件进行调整,然后告别转发器及其polyfill:
"output": { "js": { "version": "ES6" } }