{"id":41893,"library":"rollup-plugin-javascript-confuser","title":"rollup-plugin-javascript-confuser","description":"Rollup and Vite plugin for js-confuser, providing JavaScript obfuscation with configurable options like debugProtection, string encryption, and control flow flattening. Current version 1.0.3 requires js-confuser ^2.0.0 as a peer dependency. It offers fine-grained include/exclude filtering and is designed for both Rollup and Vite builds. Forked from vite-plugin-javascript-obfuscator, it focuses on ease of integration and flexibility in obfuscation strategies, targeting production builds for code protection.","status":"active","version":"1.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/EXPress-016/rollup-plugin-javascript-confuser","tags":["javascript","rollup","vite","obfuscator","obfuscation","uglify","crush","code protection","javascript obfuscator","typescript"],"install":[{"cmd":"npm install rollup-plugin-javascript-confuser","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-javascript-confuser","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-javascript-confuser","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core obfuscation library; must be installed alongside this plugin.","package":"js-confuser","optional":false}],"imports":[{"note":"ESM-only package; CommonJS require will fail. Use import syntax in Rollup config or ESM-compatible environment.","wrong":"const obfuscatorPlugin = require('rollup-plugin-javascript-confuser')","symbol":"default","correct":"import obfuscatorPlugin from 'rollup-plugin-javascript-confuser'"},{"note":"The package exports a single default function, not a named export.","wrong":"import { obfuscatorPlugin } from 'rollup-plugin-javascript-confuser'","symbol":"obfuscatorPlugin","correct":"import obfuscatorPlugin from 'rollup-plugin-javascript-confuser'"},{"note":"TypeScript types for options come from js-confuser, not this plugin.","wrong":"import { ObfuscatorOptions } from 'rollup-plugin-javascript-confuser'","symbol":"type ObfuscatorOptions","correct":"import type { ObfuscatorOptions } from 'js-confuser'"}],"quickstart":{"code":"// rollup.config.mjs\nimport obfuscatorPlugin from 'rollup-plugin-javascript-confuser';\n\nexport default {\n  input: 'src/index.js',\n  output: {\n    dir: 'output',\n    format: 'cjs'\n  },\n  plugins: [\n    obfuscatorPlugin({\n      include: ['src/**/*.js'],\n      exclude: [/node_modules/],\n      options: {\n        debugProtection: true,\n        stringEncoding: true,\n        controlFlowFlattening: 0.75\n      }\n    })\n  ]\n};","lang":"javascript","description":"Shows basic integration of rollup-plugin-javascript-confuser into a Rollup config with include/exclude filters and js-confuser options."},"warnings":[{"fix":"Wrap obfuscation options inside an 'options' object: obfuscatorPlugin({ options: { yourOptions } })","message":"The plugin expects js-confuser options under the 'options' key, not top-level.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use relative patterns like 'src/**/*.js' or absolute patterns starting with '/' for project root.","message":"Include and exclude patterns are evaluated against the file path relative to project root, not the resolved absolute path.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"npm install js-confuser@^2.0.0","message":"Version 1.x requires js-confuser ^2.0.0 as a peer dependency; earlier js-confuser versions are incompatible.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use import or dynamic import in an ESM context. If using require, consider using dynamic import().","message":"The plugin does not support CommonJS require; it must be imported with ESM import syntax.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set debugger: true in the plugin config, not inside the options object.","message":"The 'debugger' option is separate from js-confuser options; it only enables logging of matched/excluded files.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.3':30 '2.0.0':35 'build':55,76 'code':78,87 'configur':18 'confus':5,13,34 'control':25 'crush':86 'current':28 'debugprotect':21 'depend':39 'design':49 'eas':66 'encrypt':23 'filter':46 'fine':43 'fine-grain':42 'flatten':27 'flexibl':70 'flow':26 'focus':64 'fork':56 'grain':44 'include/exclude':45 'integr':68 'javascript':4,15,61,80,89 'js':12,33 'js-confus':11,32 'like':20 'obfusc':16,62,72,83,84,90 'offer':41 'option':19 'peer':38 'plugin':3,9,60 'product':75 'protect':79,88 'provid':14 'requir':31 'rollup':2,6,52,81 'rollup-plugin-javascript-confus':1 'strategi':73 'string':22 'target':74 'typescript':91 'uglifi':85 'version':29 'vite':8,54,59,82 'vite-plugin-javascript-obfusc':58","created_at":"2026-06-04T18:54:37.109342+00:00","updated_at":"2026-06-04T18:54:37.109342+00:00","problems":[{"fix":"Use import obfuscatorPlugin from 'rollup-plugin-javascript-confuser' in an ESM context.","cause":"Attempting to use require on an ESM-only package, or importing incorrectly.","error":"TypeError: obfuscatorPlugin is not a function"},{"fix":"Run 'npm install js-confuser' to install the peer dependency.","cause":"js-confuser peer dependency is not installed.","error":"Error: Cannot find module 'js-confuser'"},{"fix":"Change plugin config to: obfuscatorPlugin({ options: { debugProtection: true } })","cause":"Options are not wrapped inside the 'options' object.","error":"Invalid options: unknown option 'debugProtection' at top level"},{"fix":"Ensure include/exclude are arrays, strings, regexps, or functions.","cause":"include or exclude is set to an unsupported type (e.g., boolean).","error":"AssertionError [ERR_ASSERTION]: include must be Array|String|RegExp|Function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/EXPress-016/rollup-plugin-javascript-confuser#readme","github":"https://github.com/EXPress-016/rollup-plugin-javascript-confuser","docs":null,"changelog":null,"pypi":null,"npm":"rollup-plugin-javascript-confuser","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}