This is an UglifyJS plugin for Metalsmith and is a successor to the original plugin written by Keith Smith.
Install the package:
npm install metalsmith-uglify
Add the plugin to your Metalsmith build chain:
var metalsmith = require('metalsmith');
var uglify = require('metalsmith-uglify');
metalsmith(__dirname)
.source('./src')
.destination('./public')
.use(uglify());
.build(function (err) {
if (err) {
throw err;
}
console.log('Build complete');
});
The plugin function accepts a configuration object as the first argument.
-
{boolean}
options.es
- Set to useuglify-es
package instead ofuglify-js
. It will set also setoptions.uglify.ecma = 6
by default. -
{object}
options.concat
- Set to concatenate to a single bundle file. UglifyJS does not provide any ordering guarantees.-
{string}
options.concat.file
- Name of the bundle file. Default isscripts.min.js
. -
{string}
options.concat.root
- Set to limit the plugin to a specific source directory. This option overridesoptions.root
.
-
-
{function}
options.filter
- Function to filter the list of JavaScript files. By default.min.js
files are excluded. -
{string}
options.root
- Set to limit the plugin to a specific source directory. -
{boolean}
options.removeOriginal
- Set to exclude the original (unminified) file from the output directory. -
{boolean}
options.sameName
- Set to keep minified name as is without adding.min
. This option overridesoptions.removeOriginal
and is ignored ifoptions.concat
is set. -
{object}
options.uglify
- UglifyJS configuration (see UglifyJS docs). Default is{ sourceMap: { includeSources: true } }
. -
{boolean}
options.windows
- Set this if you are using the plugin on Windows.
Version 2 is a rewrite of the plugin with significant breaking changes to the options object.
Please refer to the upgrade document for more information.
To build the example page run:
make example
Inspect files in example/
for more information.
Set the DEBUG
variable to see what the plugin is doing.
If you are troubleshooting the plugin itself then the following should be enough:
DEBUG=metalsmith-uglify:info:* node build.js
If you think the problem is actually related to something UglifyJS does then you can get more detail:
DEBUG=metalsmith-uglify:* node build.js