301 lines
6.8 KiB
JavaScript
301 lines
6.8 KiB
JavaScript
// 代码混淆配置文件 - 专门针对 Next.js 项目优化
|
|
module.exports = {
|
|
// Webpack Obfuscator 配置(包含压缩功能)
|
|
obfuscator: {
|
|
// ========== 基础压缩选项 ==========
|
|
compact: true, // 压缩代码(移除空格、换行等)
|
|
simplify: true, // 简化代码(合并变量、优化表达式)
|
|
|
|
// ========== 字符串混淆选项(保守配置) ==========
|
|
splitStrings: true, // 分割字符串
|
|
splitStringsChunkLength: 8, // 减少字符串分割块长度
|
|
stringArray: true, // 字符串数组
|
|
stringArrayEncoding: ['base64'], // 字符串数组编码
|
|
stringArrayThreshold: 0.3, // 大幅降低字符串数组阈值,只混淆长字符串
|
|
stringArrayWrappersCount: 1, // 减少字符串数组包装器数量
|
|
stringArrayWrappersType: 'function', // 使用函数包装器
|
|
stringArrayWrappersParameters: ['index'], // 包装器参数
|
|
|
|
// ========== 标识符混淆选项(保守配置) ==========
|
|
identifierNamesGenerator: 'hexadecimal', // 标识符名称生成器
|
|
renameGlobals: false, // 不重命名全局变量
|
|
identifiersPrefix: '_0x', // 标识符前缀
|
|
identifiersDictionary: [], // 空字典,使用默认生成
|
|
|
|
// ========== 完全禁用复杂混淆 ==========
|
|
controlFlowFlattening: false, // 禁用控制流扁平化
|
|
deadCodeInjection: false, // 禁用死代码注入
|
|
debugProtection: false, // 调试保护(生产环境建议关闭)
|
|
debugProtectionInterval: 0, // 调试保护间隔
|
|
numbersToExpressions: false, // 禁用数字转表达式
|
|
selfDefending: false, // 禁用自我保护
|
|
transformObjectKeys: false, // 禁用转换对象键
|
|
unicodeEscapeSequence: false, // Unicode 转义序列
|
|
|
|
// ========== 日志和调试选项 ==========
|
|
disableConsoleOutput: false, // 保留控制台输出
|
|
log: false, // 不输出混淆日志
|
|
|
|
// ========== 高级选项 ==========
|
|
sourceMap: false, // 不生成 source map
|
|
target: 'node', // 目标环境为 Node.js
|
|
seed: 0, // 随机种子
|
|
|
|
// ========== 保留重要标识符(扩展版) ==========
|
|
reservedNames: [
|
|
"require",
|
|
"module",
|
|
"exports",
|
|
"__dirname",
|
|
"__filename",
|
|
"global",
|
|
"process",
|
|
"Buffer",
|
|
"setTimeout",
|
|
"setInterval",
|
|
"clearTimeout",
|
|
"clearInterval",
|
|
"getStaticProps",
|
|
"getStaticPaths",
|
|
"getServerSideProps",
|
|
"getInitialProps",
|
|
"reportWebVitals",
|
|
"db",
|
|
"client",
|
|
"query",
|
|
"execute",
|
|
"connect",
|
|
"disconnect",
|
|
"redis",
|
|
"kvrocks",
|
|
"upstash",
|
|
"mongo",
|
|
"postgres",
|
|
"mysql",
|
|
"GET",
|
|
"POST",
|
|
"PUT",
|
|
"DELETE",
|
|
"PATCH",
|
|
"OPTIONS",
|
|
"HEAD",
|
|
"Request",
|
|
"Response",
|
|
"NextRequest",
|
|
"NextResponse",
|
|
"Error",
|
|
"TypeError",
|
|
"ReferenceError",
|
|
"SyntaxError",
|
|
"RangeError",
|
|
"EvalError",
|
|
"URIError",
|
|
"AggregateError",
|
|
"init",
|
|
"setup",
|
|
"config",
|
|
"start",
|
|
"stop",
|
|
"run",
|
|
"main",
|
|
"handler",
|
|
"middleware",
|
|
"auth",
|
|
"validate",
|
|
"parse",
|
|
"serialize",
|
|
"console",
|
|
"log",
|
|
"error",
|
|
"warn",
|
|
"info",
|
|
"debug",
|
|
"trace",
|
|
"assert",
|
|
"clear",
|
|
"count",
|
|
"countReset",
|
|
"group",
|
|
"groupCollapsed",
|
|
"groupEnd",
|
|
"table",
|
|
"time",
|
|
"timeEnd",
|
|
"timeLog",
|
|
"profile",
|
|
"profileEnd",
|
|
"logger",
|
|
"logging",
|
|
"logLevel",
|
|
"logInfo",
|
|
"logError",
|
|
"logWarn",
|
|
"logDebug",
|
|
"logTrace",
|
|
"logFatal",
|
|
"logCritical",
|
|
"next",
|
|
"react",
|
|
"react-dom",
|
|
"next-pwa",
|
|
"next-themes",
|
|
"import",
|
|
"export",
|
|
"from",
|
|
"as",
|
|
"webpack",
|
|
"webpackChunk",
|
|
"webpackChunkName",
|
|
"chunk",
|
|
"chunks",
|
|
"chunkName",
|
|
"chunkFilename",
|
|
"entry",
|
|
"entries",
|
|
"entrypoint",
|
|
"entrypoints",
|
|
"modules",
|
|
"moduleId",
|
|
"moduleIds",
|
|
"resolve",
|
|
"resolver",
|
|
"resolveLoader",
|
|
"resolveModules",
|
|
"externals",
|
|
"externalsType",
|
|
"externalsPresets",
|
|
"output",
|
|
"outputPath",
|
|
"outputFilename",
|
|
"outputChunkFilename",
|
|
"optimization",
|
|
"minimize",
|
|
"minimizer",
|
|
"splitChunks",
|
|
"plugins",
|
|
"plugin",
|
|
"apply",
|
|
"compiler",
|
|
"compilation",
|
|
"loader",
|
|
"loaders",
|
|
"use",
|
|
"test",
|
|
"include",
|
|
"exclude",
|
|
"rules",
|
|
"rule",
|
|
"oneOf",
|
|
"resource",
|
|
"resourceQuery",
|
|
"issuer",
|
|
"issuerLayer",
|
|
"sideEffects",
|
|
"parser",
|
|
"generator",
|
|
"define",
|
|
"defined",
|
|
"definition",
|
|
"definitions",
|
|
"factory",
|
|
"factories",
|
|
"getter",
|
|
"getters",
|
|
"setter",
|
|
"setters",
|
|
"amd",
|
|
"umd",
|
|
"commonjs",
|
|
"esm",
|
|
"es6",
|
|
"es2015",
|
|
"es2020",
|
|
"babel",
|
|
"babelrc",
|
|
"tsconfig",
|
|
"jest",
|
|
"eslint",
|
|
"prettier",
|
|
"rollup",
|
|
"vite",
|
|
"parcel",
|
|
"gulp",
|
|
"grunt"
|
|
],
|
|
|
|
// ========== 保留重要字符串(扩展版) ==========
|
|
reservedStrings: [
|
|
"api",
|
|
"admin",
|
|
"user",
|
|
"auth",
|
|
"login",
|
|
"logout",
|
|
"register",
|
|
"search",
|
|
"live",
|
|
"douban",
|
|
"favorites",
|
|
"playrecords",
|
|
"proxy",
|
|
"database",
|
|
"connection",
|
|
"result",
|
|
"success",
|
|
"setting",
|
|
"option",
|
|
"parameter",
|
|
"environment",
|
|
"file",
|
|
"path",
|
|
"directory",
|
|
"folder",
|
|
"extension",
|
|
"logger",
|
|
"logging",
|
|
"fatal",
|
|
"critical",
|
|
"output",
|
|
"message",
|
|
"next",
|
|
"react",
|
|
"react-dom",
|
|
"next-pwa",
|
|
"next-themes",
|
|
"webpack",
|
|
"chunk",
|
|
"module",
|
|
"entry",
|
|
"loader",
|
|
"plugin",
|
|
"compiler",
|
|
"compilation",
|
|
"require",
|
|
"import",
|
|
"export",
|
|
"default",
|
|
"from",
|
|
"as",
|
|
"use",
|
|
"test",
|
|
"include",
|
|
"define",
|
|
"factory",
|
|
"amd",
|
|
"umd",
|
|
"commonjs",
|
|
"esm",
|
|
"babel",
|
|
"typescript",
|
|
"jest",
|
|
"eslint",
|
|
"prettier",
|
|
"rollup",
|
|
"vite",
|
|
"parcel",
|
|
"gulp",
|
|
"grunt"
|
|
]
|
|
}
|
|
};
|