diff --git a/package.json b/package.json index 1e09c42..378c831 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "tw-animate-css": "^1.4.0", "typescript": "~5.9.3", "vite": "^8.0.1", + "vite-plugin-bundle-obfuscator": "^1.11.0", "vue-tsc": "^3.2.5" } } diff --git a/vite.config.ts b/vite.config.ts index fd5a70c..244faae 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,9 +2,50 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import tailwindcss from '@tailwindcss/vite' import { fileURLToPath, URL } from 'node:url' +import vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator' export default defineConfig({ - plugins: [vue(), tailwindcss()], + plugins: [ + vue(), + tailwindcss(), + vitePluginBundleObfuscator({ + apply: 'build', + log: true, + autoExcludeNodeModules: true, + threadPool: true, + options: { + compact: true, + controlFlowFlattening: true, + controlFlowFlatteningThreshold: 1, + deadCodeInjection: false, + debugProtection: false, + debugProtectionInterval: 0, + disableConsoleOutput: true, + identifierNamesGenerator: 'hexadecimal', + ignoreImports: true, + numbersToExpressions: true, + renameGlobals: false, + selfDefending: true, + simplify: true, + splitStrings: true, + splitStringsChunkLength: 5, + stringArray: true, + stringArrayCallsTransform: true, + stringArrayCallsTransformThreshold: 1, + stringArrayEncoding: ['base64'], + stringArrayIndexShift: true, + stringArrayRotate: true, + stringArrayShuffle: true, + stringArrayWrappersChainedCalls: true, + stringArrayWrappersCount: 3, + stringArrayWrappersParametersMaxCount: 4, + stringArrayWrappersType: 'function', + stringArrayThreshold: 1, + transformObjectKeys: true, + unicodeEscapeSequence: false, + }, + }), + ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url))