ghostdevv / rollup-obfuscator

A plugin to obfuscate javascript for rollup based on https://www.npmjs.com/javascript-obfuscator
MIT License
55 stars 7 forks source link
hacktoberfest javascript-obfuscator obfuscation obfuscator rollup rollup-obfuscator rollup-plugin

Rollup Obfuscator

A rollup/vite plugin to obfuscate your code based on javascript-obfuscator

Requirements

Installing

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()
    ]
})

Configuring

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
    })
]

Obfuscator Options

All config options can be found here. The plugin has the same default options, except setting sourceMap: true and stringArray: false.

Plugin Specific Options

Migrate to v4

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.

Support