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}`); });