Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么没有任何混淆器处理我的Javascript代码?是因为ecmascript吗?_Javascript_Obfuscation_Ecmascript 2016 - Fatal编程技术网

为什么没有任何混淆器处理我的Javascript代码?是因为ecmascript吗?

为什么没有任何混淆器处理我的Javascript代码?是因为ecmascript吗?,javascript,obfuscation,ecmascript-2016,Javascript,Obfuscation,Ecmascript 2016,我似乎无法混淆,即使它确实被混淆,它也会停止正常工作并抛出错误。 混淆器在异步/等待时抛出意外标记或错误。 这是密码 class LedgerElement extends HTMLElement { __columns = [];//obfuscator throws unexpected token error __footers = []; __months = []; constructor() { super(); this.attachShadow({

我似乎无法混淆,即使它确实被混淆,它也会停止正常工作并抛出错误。 混淆器在异步/等待时抛出意外标记或错误。 这是密码

class LedgerElement extends HTMLElement {

__columns = [];//obfuscator throws unexpected token error
__footers = [];
__months = [];

constructor() {
    super();
    this.attachShadow({
        mode: 'open'
    });
    this.shadowRoot.innerHTML = document.querySelector('#tmpLedger').innerHTML;
    let parent = this,
        months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    this.columns = this.getAttribute('cols').split(',');
    this.footers = this.getAttribute('fot').split(',');
    this.status = this.getAttribute('stats').split(',');
    this.months = months;
    var d = new Date();
    var n = d.getUTCMonth();
    this.currentMonth = months[n];

    this.shadowRoot.querySelector('#update').addEventListener("click", async function () {
        await Promise.all([
            getSelectedRows(parent).then((arrList) => {
                arrList.forEach(range => getUpdateData(range, parent, "update"))
            }),
            count = 0,
            calculateTotal(parent)
        ]);
    });

for await/*<-obfuscator throws error*/ (let c of parent.querySelectorAll(`bbl-cell[col="8"]`)) {
    let balanceCell = parseFloat(parent.querySelector(`bbl-cell[row="${c.row}"][col="9"]`).content);
    maxCredit = c.content.length != 0 && c.content == 'YES' ? maxCredit + balanceCell : maxCredit + 0;
}

提前谢谢,对不起,我的英语不好

我猜您可能正在使用uglify,它不支持ES6+语法。使用或使用进行传输

修复代码并将for wait of循环放入异步函数中,然后将代码复制并粘贴到此处:

或者,在打开es2015、es2016、es2017、stage-0预设的情况下,使用babel的传输输出为uglify或您的模糊器提供信息:


还有其他一些项目,如babel minify,但terser是其中一个成熟的项目。

您使用的是哪个模糊器?我猜是丑陋的。很可能您正在使用的混淆器需要使用Babel传输代码。类和等待语法不受支持。流行的混淆或使用babel进行transpile或使用简洁。此外,您的代码有语法错误我使用了babel,然后对其进行了模糊处理,但之后在运行->未捕获引用时出错错误:在sourceMap:45中未定义regeneratorRuntime。对不起,如果我打扰我的新的网络开发。请注意,尽管这将起作用,但不建议这样做。如果选择babel路由,则应设置完整的编译环境。polyfill在这里:安装babel,包括在不需要编译的地方为deving创建原型:browserify是最容易做到的。您只需使用browserify设置uglifyify babelify链,并确保通过正确的预设环境。虽然大多数人可能只是使用预先构建的网页包环境来澄清运行babel Transpile代码所需的babel polyfill,但通常在生产使用中异步/等待transpiler会使用regenerator runtime,你应该使用@babel/polyfill并用你的代码通过树震动来编译它,以保持较小的大小我在我的ES6节点代码上运行得更简洁,但不能让它破坏我的函数名。你知道为什么吗?我确保通过了-module CLI选项。