const fs = require('fs');
|
const path = require('path');
|
const JavaScriptObfuscator = require('javascript-obfuscator');
|
|
const jsDir = path.resolve(__dirname, './unpackage/dist/build/web/static/js');
|
|
const files = fs.readdirSync(jsDir)
|
.filter(f => f.endsWith('.js'))
|
.filter(f => !/^vendor.*\.js$/.test(f))
|
.filter(f => !/^manifest.*\.js$/.test(f));
|
|
files.forEach(file => {
|
const filePath = path.join(jsDir, file);
|
const code = fs.readFileSync(filePath, 'utf-8');
|
|
const obfuscatedCode = JavaScriptObfuscator.obfuscate(code, {
|
rotateStringArray: true,
|
stringArray: true,
|
stringArrayEncoding: ['base64'],
|
stringArrayThreshold: 0.75,
|
compact: true,
|
controlFlowFlattening: false,
|
deadCodeInjection: false,
|
selfDefending: false,
|
disableConsoleOutput: true,
|
transformObjectKeys: false,
|
unicodeEscapeSequence: true,
|
}).getObfuscatedCode();
|
|
fs.writeFileSync(filePath, obfuscatedCode, 'utf-8');
|
console.log(`混淆完成: ${file}`);
|
});
|