Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/node_modules/laravel-mix/src/components/ |
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') {
if (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));
});
}
options.minimize = options.hasOwnProperty('minimize')
? options.minimize
: Mix.inProduction();
}
return options;
}
}
module.exports = PurifyCss;