This plugin allows you to obfuscate entry javascript files using javascript-obfuscator.
To get started using your favourite package manager.
yarn add -D parcel-plugin-obfuscate
npm install -D parcel-plugin-obfuscate
yarn cross-env NODE_ENV=production parcel build ./index.js
npx cross-env NODE_ENV=production parcel build ./index.js
This runs cross-env which sets NODE_ENV to production
which enables this plugin in parcel and later obfuscates the compiled code.
cd ROOT_YOUR_PROJECT
touch obfuscator.config.js
add in file needed presets from https://github.com/javascript-obfuscator/javascript-obfuscator#preset-options
from this:
// original
class Something {
constructor(){
this.type = "js";
}
}
to this:
// obfuscated
var _0x53ed=['type'];(function(_0x5de549,_0xe388a2){var _0x3bfb0e=function(_0x284f19){while(--_0x284f19){_0x5de549['push'](_0x5de549['shift']());}};_0x3bfb0e(++_0xe388a2);}(_0x53ed,0x13f));var _0x168c=function(_0x3efb93,_0x362405){_0x3efb93=_0x3efb93-0x0;var _0x4682eb=_0x53ed[_0x3efb93];return _0x4682eb;};class Something{constructor(){this[_0x168c('0x0')]='js';}}
This plugin has basic test to ensure that everything works as expected. You can find these tests under test
or run them using the test
script.
yarn test
npm run test