https://github.com/ghostdevv/rollup-obfuscator
A plugin to obfuscate javascript for rollup based on https://www.npmjs.com/javascript-obfuscator
https://github.com/ghostdevv/rollup-obfuscator
hacktoberfest javascript-obfuscator obfuscation obfuscator rollup rollup-obfuscator rollup-plugin
Last synced: about 2 months ago
JSON representation
A plugin to obfuscate javascript for rollup based on https://www.npmjs.com/javascript-obfuscator
- Host: GitHub
- URL: https://github.com/ghostdevv/rollup-obfuscator
- Owner: ghostdevv
- License: mit
- Created: 2021-02-03T10:10:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-12-06T01:02:38.000Z (over 1 year ago)
- Last Synced: 2025-04-14T06:41:02.867Z (2 months ago)
- Topics: hacktoberfest, javascript-obfuscator, obfuscation, obfuscator, rollup, rollup-obfuscator, rollup-plugin
- Language: TypeScript
- Homepage:
- Size: 663 KB
- Stars: 55
- Watchers: 2
- Forks: 7
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Rollup Obfuscator
[](https://www.npmjs.com/package/rollup-obfuscator)
A rollup/vite plugin to obfuscate your code based on [javascript-obfuscator](https://www.npmjs.com/javascript-obfuscator)
# Requirements
- Rollup: v2, v3, or v4
- Node: v16+
- javascript-obfuscator: v4# Installing
First install the plugin as a dev dependency:
```bash
npm install rollup-obfuscator -D
```Next we should add it to the **end** of the plugins array:
Rollup:
```js
import { obfuscator } from 'rollup-obfuscator';export default {
plugins: [
// ...
obfuscator()
]
}
```Vite:
> [!NOTE]
> This will only apply at build time```js
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.
```js
plugins: [
obfuscator({
// options go here
})
]
```### Obfuscator Options
All config options can be found [here](https://www.npmjs.com/package/javascript-obfuscator). The plugin has the same default options, except setting `sourceMap: true` and `stringArray: false`.
### Plugin Specific Options
- `include` - A [FilterPattern](https://github.com/rollup/plugins/blob/master/packages/pluginutils/types/index.d.ts#L23) of files to include. Defaults to `['**/*.js', '**/*.ts']`
- `exclude` - A [FilterPattern](https://github.com/rollup/plugins/blob/master/packages/pluginutils/types/index.d.ts#L23) of files to exclude. Defaults to `['node_modules/**']`
# 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](https://github.com/ghostdevv/rollup-obfuscator/issues/new). You can see the [full code changes here](https://github.com/ghostdevv/rollup-obfuscator/compare/v3.0.2...v4.0.0).
# Support
- Join the [discord](https://discord.gg/2Vd4wAjJnm)
- Create a issue on the [GitHub](https://github.com/ghostdevv/rollup-obfuscator/issues/new)