parcel-bundler
Version:
<p align="center"> <a href="https://parceljs.org/" target="_blank"> <img alt="Parcel" src="https://user-images.githubusercontent.com/19409/31321658-f6aed0f2-ac3d-11e7-8100-1587e676e0ec.png" width="749"> </a> </p>
43 lines (35 loc) • 915 B
JavaScript
const {minify} = require('uglify-es');
const config = require('../utils/config');
module.exports = async function(asset) {
await asset.parseIfNeeded();
// Convert AST into JS
let code = asset.generate().js;
let customConfig = await config.load(asset.name, ['.uglifyrc']);
let options = {
warnings: true,
mangle: {
toplevel: true
},
compress: {
drop_console: true
}
};
if (customConfig) {
options = Object.assign(options, customConfig);
}
let result = minify(code, options);
if (result.error) {
throw result.error;
}
// Log all warnings
if (result.warnings) {
result.warnings.forEach(warning => {
// TODO: warn this using the logger
console.log(warning);
});
}
// babel-generator did our code generation for us, so remove the old AST
asset.ast = null;
asset.outputCode = result.code;
asset.isAstDirty = false;
};