@winner-fed/winner-deploy
Version:
Generate a publication deployed by the See platform
44 lines (43 loc) • 1.53 kB
JavaScript
const fs = require('fs')
const path = require('path')
const JavaScriptObfuscator = require('./obfuscator')
try {
const webAppName = process.argv[2] || process.env.WEB_APP_NAME
const configBase = process.argv[3] || process.env.CONFIG_FILE_NAME || 'sysconfig'
const pkgRoot = process.argv[4] ? path.resolve(process.argv[4]) : path.resolve(__dirname, '..', '..')
if (!webAppName) {
console.error('缺少前端应用目录名:请传入第 1 个参数或设置环境变量 WEB_APP_NAME')
process.exit(1)
}
const filepath = path.join(pkgRoot, webAppName, `${configBase}.js`)
console.log(`__filename:${__filename}`)
console.log(`文件路径:${filepath}`)
if (!fs.existsSync(filepath)) {
console.error(`文件不存在: ${filepath}`)
process.exit(1)
}
const sourceCode = fs.readFileSync(filepath, 'utf8')
const obfuscationResult = JavaScriptObfuscator.obfuscate(
sourceCode,
{
compact: true,
controlFlowFlattening: true,
controlFlowFlatteningThreshold: 0.75,
deadCodeInjection: true,
deadCodeInjectionThreshold: 0.5,
numbersToExpressions: true,
simplify: true,
selfDefending: true,
shuffleStringArray: true,
splitStrings: true,
stringArrayThreshold: 0.75,
unicodeEscapeSequence: true
}
)
fs.writeFileSync(filepath, obfuscationResult.getObfuscatedCode())
console.log('代码混淆完成,并已更新成功')
console.log(`更新路径:${filepath}`)
} catch (e) {
console.error(e)
process.exit(1)
}