2020-06-29 js防盗babel并压缩 360浏览器canvas元素 opacity为0时

190 阅读1分钟

(可选)首先babel转码

npx bable xxx.js -o xxx.js

js防盗babel并压缩

const fs = require('fs')
const obfuscator = require('javascript-obfuscator')

let file = fs.readFileSync('./BlockManager.js', "utf8");

function obfuscate(code, options) {
    return obfuscator.obfuscate(code, options).getObfuscatedCode()
}

let result = obfuscate(file, { 
    transformObjectKeys:true, 
    // 防止代码美化,美化后的代码会执行死循环
    selfDefending: true
});

// 一些特殊的属性不会被转码,需要手动处理一遍
let replaces = [/points/g, /point/g, /startup/g, /reset/g, /variable/g, /children/g, /callbacks/g, /distance/g, /'start'/g, /'end'/g]; // /callback/g, /selector/g, /start/g, 
let replaced = ['qm32ds', 'cv18ik', 's2d4zz', 'kmi8xc', 'hb657', 'si88n', 'rf19oi', 'pm99x8', "'mm53tg'", "'erxx63'"]; // 'uv93ik', 'lll3sz', 'mm53tg'

replaces.forEach((reg, i) => { result = result.replace(reg, replaced[i])});

fs.writeFileSync('./BlockManager.js', result, "utf8");

压缩采用vscode的MinifyAll插件

360浏览器canvas元素 opacity为0时

teche四目官网项目,ip65动画块中,canvas上画视频,并从opacity0到1,在开始的一瞬间会发生阻塞,猜想原因在于360浏览器对opacity为0的元素做了特殊处理