Files
MoonTVPlus/obfuscation.config.js
2025-08-25 00:01:27 +08:00

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"
]
}
};