webfuscator
v1.2.1
Published
JavaScript obfuscator built on Babel
Maintainers
Readme
webfuscator is a Babel-based JavaScript obfuscator. It parses a JavaScript source string, applies configurable transforms, and returns JavaScript source.
Read the documentation for the quickstart, configuration guides, API details, and a reference page for every transform. To try it without installing anything, open the playground and obfuscate a file in your browser.
Install
npm install --save-dev webfuscatorThe package is ESM-only, includes TypeScript declarations, and requires Node.js ^22.18.0 || >=24.11.0.
Usage
import { obfuscate } from 'webfuscator'
const source = `export default function square(value) {
return value * value
}`
const output = obfuscate(source, {
minify: true,
seed: 0,
transforms: {
renameIdentifiers: true,
},
})obfuscate(code, options?) is synchronous. It does not execute the input or write files.
Configurable transforms are disabled by default; preparation passes always run.
Documentation
- Playground
- Quickstart
- JavaScript API
- Configure transforms
- Obfuscator options
- Property mangling
- String generator modes
- Report a bug
Development
Every task runs from the repository root.
pnpm install
pnpm dev # playground at localhost:5173
pnpm docs:dev # documentation site
pnpm test # the full suite
pnpm check # typecheck, lint, format, knip, generated docs, tests
pnpm docs:check # links, snippets, redirects, accessibilityAGENTS.md lists the rest and explains which workspace owns what. Read it before changing transforms or analysis code.
Responsible use
Use webfuscator only on software you own or are authorized to modify. Read DISCLOSURE for the project's dual-use policy.
