为什么没有任何混淆器处理我的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选项。