laravel-mix-yq
Version:
Laravel Mix is an elegant wrapper around Webpack for the 80% use case.
54 lines (42 loc) • 1.27 kB
JavaScript
let AutomaticComponent = require('./AutomaticComponent');
let glob = require('glob');
class PurifyCss extends AutomaticComponent {
/**
* Required dependencies for the component.
*/
dependencies() {
if (Config.purifyCss) {
this.requiresReload = true;
return ['purifycss-webpack', 'purify-css'];
}
}
/**
* Override the generated webpack configuration.
*
* @param {Object} config
*/
webpackConfig(config) {
if (Config.purifyCss) {
Config.purifyCss = this.build(Config.purifyCss);
let CssPurifierPlugin = require('../webpackPlugins/CssPurifierPlugin');
config.plugins.push(CssPurifierPlugin.build());
}
}
/**
* Build the CSSPurifier plugin options.
*
* @param {Object} options
*/
build(options) {
if (typeof options === 'object' && options.paths) {
let paths = options.paths;
paths.forEach(path => {
if (!path.includes('*')) return;
options.paths.splice(paths.indexOf(path), 1);
options.paths = paths.concat(glob.sync(path));
});
}
return options;
}
}
module.exports = PurifyCss;