Grunt plugin that obfuscates your JavaScript using the javascript-obfuscator library.
npm install grunt-contrib-obfuscator> Obfuscate JavaScript files using javascript-obfuscator@^2.0.0.
You can try the javascript-obfuscator module and see all its options here: https://obfuscator.io/
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
``shell`
npm install grunt-contrib-obfuscator --save-dev
npm install javascript-obfuscator --save-dev
Notice that you should install manually javascript-obfuscator. This makes it easier to have a newer version of the obfuscator library if needed.
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-contrib-obfuscator');
command._Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Options
See the options on the obfuscator repo.
_Note that at this time the
sourceMap isn't implemented in this plugin._In addition to the obfuscator options, you can also use:
#### banner
Type:
String
Default: ''This string will be prepended to the obfuscated output. Template strings (e.g.
<%= config.value %> will be expanded automatically.Usage examples
#### Default options
This configuration will obfuscate the input files using the default options.
`javascript
obfuscator: {
options: {
// global options for the obfuscator
},
task1: {
options: {
// options for each sub task
},
files: {
'dest/output.js': [
'src/js/file1.js',
'src/js/file2.js'
]
}
}
}
`This configuration will obfuscate the input files in a destination folder by keeping the original names and directories
`javascript
obfuscator: {
options: {
// global options for the obfuscator
},
task1: {
options: {
// options for each sub task
},
files: {
'dest/': [ // the files and their directories will be created in this folder
'src/js/file1.js',
'src/js/folder/file2.js'
]
}
}
}
`#### Debug protection and banner
Here you code will be protected against debugging and locked to the domain
www.example.com.`javascript
obfuscator: {
options: {
banner: '// obfuscated with grunt-contrib-obfuscator.\n',
debugProtection: true,
debugProtectionInterval: true,
domainLock: ['www.example.com']
},
task1: {
options: {
// options for each sub task
},
files: {
'dest/output.js': [
'src/js/file1.js',
'src/js/file2.js'
]
}
}
}
``