https://github.com/codefend/webpack-plugin-codefend
Webpack plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.
https://github.com/codefend/webpack-plugin-codefend
codefend obfuscator uglify webpack webpack-plugin
Last synced: 7 months ago
JSON representation
Webpack plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.
- Host: GitHub
- URL: https://github.com/codefend/webpack-plugin-codefend
- Owner: Codefend
- License: mit
- Created: 2023-01-15T09:09:55.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-01T21:24:37.000Z (about 1 year ago)
- Last Synced: 2025-07-04T05:18:26.780Z (9 months ago)
- Topics: codefend, obfuscator, uglify, webpack, webpack-plugin
- Language: TypeScript
- Homepage: https://codefend.github.io/docs
- Size: 1.64 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# webpack-plugin-codefend





Webpack plugin for code obfuscation based on [Codefend](https://www.npmjs.com/package/codefend)
## Installation
```bash
npm install -D webpack-plugin-codefend
```
## Usage
### `Step 1`: Configuration
Add to your `webpack.config.js`:
#### Default options
```js
import { WebpackPluginCodefend } from "webpack-plugin-codefend";
export default {
entry: ...
output: ...,
plugins: [new WebpackPluginCodefend()],
};
```
#### Custom options
```js
import { WebpackPluginCodefend } from "webpack-plugin-codefend";
export default {
entry: ...
output: ...,
plugins: [
new WebpackPluginCodefend({
transformation:{
// the prefix to use for each obfuscated variable
prefix: "Ox",
// control how a specific variable should be obfuscated
static: [
{
from: "predefined_secret",
to: "123456",
},
],
//will skip obfuscation for the following words
ignore: ["node_modules"],
/* By using everyday words such as books or lorem ipsum in the pool,
you can subtly obfuscate your code,
concealing its true nature without making it apparent that obfuscation is occurring.*/
pool: ["QueenOfHeart"],
},
debug: {
// to display detailed stats about the words that have been obfuscated
stats: true,
},
}),
],
};
```
For a more detailed explanation, refer to the [configuration](https://codefend.github.io/docs/references/configuration) section of the `codefend` docs.
### `Step 2`: Naming convention
In your code, `add prefixes to the words that you want Codefend to encrypt.`
`Make sure to read the `[`Philosophy`](https://github.com/Codefend/core#philosophy)` behind Codefend obfuscation First to understand why Codefend can work with any code written in any language.`
```js
//node js example
//as a starting point: prefix the words that should be encrypted with l_
class l_Calculator {
l_sum(l_a, l_b) {
const l_results = l_a + l_b;
console.log("node_modules");
console.log("predefined_secret");
return l_results;
}
}
//>>>>>>==== Will Become ======<<<<<<
class QueenOfHeart /* 'QueenOfHeart' defined in pool*/ {
/* Ox1, Ox2... prefix transformation*/
Ox1(Ox2, Ox3) {
const Ox4 = Ox2 + Ox3;
console.log("node_modules"); // has not been obfuscated
console.log("123456"); // has transformed from "predefined_secret" to "123456"
return Ox4;
}
}
```
```html
.l_red {
color: red;
}
l_secret
Hello World
.Ox1 {
color: red;
}
Ox0
Hello World
```
## Examples
1. ### [`Node js`](./example)
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
[MIT](./LICENSE.md)