A rollup/vite plugin to obfuscate your code based on javascript-obfuscator
- Rollup: v2, v3, or v4
- Node: v16+
- javascript-obfuscator: v4
First install the plugin as a dev dependency:
npm install rollup-obfuscator -D
Next we should add it to the end of the plugins array:
Rollup:
import { obfuscator } from 'rollup-obfuscator';
export default {
plugins: [
// ...
obfuscator()
]
}
Vite:
Note
This will only apply at build time
import { obfuscator } from 'rollup-obfuscator';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
// ...
obfuscator()
]
})
The plugin should hopefully work out of the box. However, it's likely to break on larger applications - especially those that use complex frameworks. You should play with the options to find what works best for your application.
plugins: [
obfuscator({
// options go here
})
]
All config options can be found here. The plugin has the same default options, except setting sourceMap: true
and stringArray: false
.
-
include
- A FilterPattern of files to include. Defaults to['**/*.js', '**/*.ts']
-
exclude
- A FilterPattern of files to exclude. Defaults to['node_modules/**']
v4 of this plugin now requires a minimum Node version of v16, it may still work on older versions but it isn't tested. options.global
was removed and is now follows v3's global: false
behaviour, some issues came up that made it no longer make sense. Finally a few obfuscator option defaults were changed to: stringArray: false
, sourceMap: true
. If you're project doesn't work with v4 please let me know why by creating an issue. You can see the full code changes here.