vite-plugin-bundle-obfuscator
v1.1.0
Published
JavaScript obfuscator plugin for Vite environments
Downloads
1,493
Maintainers
Readme
vite-plugin-bundle-obfuscator
适用于Vite环境的JavaScript混淆器插件
Changelog · Report Bug · Request Feature
✨ 待支持
- [ ] 💎 支持字符串数组选项
- [ ] 💎 支持node_modules拆分块
📦 安装
npm install vite-plugin-bundle-obfuscator -D
👨💻 使用
- 运行npm install vite-plugin-bundle-obfuscator -D
- 在
vite.config.js
中注册插件 - 设置您自己的配置或设置为空以使用默认选项
import vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';
const obfuscatorConfig = {
enable: true,
log: true,
autoExcludeNodeModules: true,
excludes: [],
options: {}
};
export default {
plugins: [vitePluginBundleObfuscator(obfuscatorConfig)]
};
💪 配置
| 属性 | 描述 | 类型 | 默认值 | 版本 | |------------------------|----------------------------|-------------------------------------------------------------------------------------|----------------|--------| | log | 显示或隐藏日志输出。 | boolean | true | v1.0.4 | | enable | 启用或禁用混淆器。 | boolean | true | v1.0.1 | | autoExcludeNodeModules | 启用自动排除node_modules。 | boolean | false | v1.0.9 | | apply | 仅将插件应用于服务或构建,或在特定条件下。 | 'serve' | 'build' | ((this: void, config: UserConfig, env: ConfigEnv) => boolean) | build | v1.1.0 | | excludes | 排除的bundle名。从v1.0.8开始,支持正则。 | (RegExp | string)[] | [] | v1.0.0 | | options | JavaScript混淆器的选项。 | ObfuscatorOptions | Config example | v1.0.0 |
💡 配置示例
const obfuscatorConfig = {
excludes: [],
enable: true,
log: true,
autoExcludeNodeModules: false,
options: {
compact: true,
controlFlowFlattening: true,
controlFlowFlatteningThreshold: 1,
deadCodeInjection: false,
debugProtection: false,
debugProtectionInterval: 0,
disableConsoleOutput: false,
identifierNamesGenerator: 'hexadecimal',
log: false,
numbersToExpressions: false,
renameGlobals: false,
selfDefending: true,
simplify: true,
splitStrings: false,
// stringArray必须为false,如果您设置为true。您的样式表将缺少一些。
stringArray: false,
stringArrayCallsTransform: false,
stringArrayCallsTransformThreshold: 0.5,
stringArrayEncoding: [],
stringArrayIndexShift: true,
stringArrayRotate: true,
stringArrayShuffle: true,
stringArrayWrappersCount: 1,
stringArrayWrappersChainedCalls: true,
stringArrayWrappersParametersMaxCount: 2,
stringArrayWrappersType: 'variable',
stringArrayThreshold: 0.75,
unicodeEscapeSequence: false,
}
};