js文件加密。安装 Terser
单独一个
1、安装
npm install terser --save-dev
2、配置混淆脚本
在 package.json 中添加一个脚本用于混淆代码:
{"scripts": {"obfuscate": "terser src/main.js -o src/main.min.js"}
}
运行
npm run obfuscate
加密整个目录,和单独文件,一次全部,新间js文件terser.js,注意这个是在源文件上加密,加密请把项目单独复制出来
执行node .\terser.js加密
const fs = require('fs');
const path = require('path');
const { minify } = require('terser');// 定义要处理的目录和文件数组
const targets = ['./electron', 'main.js'];// 处理单个目标(目录或文件)
function processTarget(target) {const stat = fs.statSync(target);if (stat.isDirectory()) {traverseDirectory(target);} else if (path.extname(target) === '.js') {processJsFile(target);} else {console.log(`${target} 不是有效的 JS 文件或目录`);}
}// 递归遍历目录并处理 JS 文件
function traverseDirectory(dir) {const files = fs.readdirSync(dir);files.forEach((file) => {const filePath = path.join(dir, file);const stat = fs.statSync(filePath);if (stat.isDirectory()) {traverseDirectory(filePath);} else if (path.extname(file) === '.js') {processJsFile(filePath);}});
}// 处理单个 JS 文件
async function processJsFile(filePath) {try {const code = fs.readFileSync(filePath, 'utf8');const result = await minify(code);if (result.error) {console.error(`Error processing ${filePath}:`, result.error);} else {fs.writeFileSync(filePath, result.code, 'utf8');console.log(`Processed ${filePath}`);}} catch (err) {console.error(`Error reading or writing ${filePath}:`, err);}
}// 开始处理所有目标
targets.forEach(processTarget);