rollup-plugin-javascript-obfuscator
raw JSON → 1.0.4 verified Mon Apr 27 auth: no javascript
A Rollup plugin that uses javascript-obfuscator to obfuscate bundled JavaScript code. Version 1.0.4 (latest) wraps javascript-obfuscator v4.x, allowing control over obfuscation options directly in the Rollup build pipeline. It supports source maps (inline or separate) and enables protection of emitted code with minimal setup. Differentiates by tightly integrating obfuscation within the bundle output, rather than requiring a separate post-build step.
Common errors
error Error: Cannot find module 'javascript-obfuscator' ↓
cause Missing peer dependency
fix
npm install --save-dev javascript-obfuscator
error TypeError: obfuscatorPlugin is not a function ↓
cause Incorrect import (named instead of default)
fix
Use default import: import obfuscatorPlugin from 'rollup-plugin-javascript-obfuscator'
error Error: The 'entry' option is deprecated. Use 'input' instead. ↓
cause Used deprecated Rollup option 'entry'
fix
Replace 'entry' with 'input' in your rollup configuration
Warnings
gotcha Obfuscation can significantly increase bundle size and reduce runtime performance ↓
fix Use obfuscator options judiciously; avoid high-complexity transforms like controlFlowFlattening if performance is critical
breaking The plugin expects javascript-obfuscator v4.x. Install it explicitly if not already present. ↓
fix npm install --save-dev javascript-obfuscator@^4.0.0
deprecated The 'entry' option used in example README is deprecated in Rollup v2+ ↓
fix Replace 'entry' with 'input'
gotcha Source maps may not work correctly if obfuscation corrupts mappings ↓
fix Test with source map enabled; use inline source maps for simpler setup
breaking The package does not export TypeScript definitions ↓
fix Create a custom declaration file or use @ts-ignore
Install
npm install rollup-plugin-javascript-obfuscator yarn add rollup-plugin-javascript-obfuscator pnpm add rollup-plugin-javascript-obfuscator Imports
- obfuscatorPlugin wrong
import { obfuscatorPlugin } from 'rollup-plugin-javascript-obfuscator'correctimport obfuscatorPlugin from 'rollup-plugin-javascript-obfuscator' - obfuscatorPlugin (require) wrong
const { obfuscatorPlugin } = require('rollup-plugin-javascript-obfuscator')correctconst obfuscatorPlugin = require('rollup-plugin-javascript-obfuscator') - rollup wrong
import rollup from 'rollup'correctimport { rollup } from 'rollup'
Quickstart
import { rollup } from 'rollup';
import obfuscatorPlugin from 'rollup-plugin-javascript-obfuscator';
async function build() {
const bundle = await rollup({
input: 'src/index.js',
plugins: [
obfuscatorPlugin({
compact: true,
controlFlowFlattening: false,
stringArrayEncoding: ['base64']
})
]
});
await bundle.write({ file: 'dist/bundle.js', format: 'esm' });
}
build().catch(console.error);