Files
w4rpservices/node_modules/laravel-mix/src/builder/webpack-plugins.js

61 lines
1.9 KiB
JavaScript
Vendored

let webpack = require('webpack');
let FriendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin');
let MixDefinitionsPlugin = require('../webpackPlugins/MixDefinitionsPlugin');
let BuildCallbackPlugin = require('../webpackPlugins/BuildCallbackPlugin');
let CustomTasksPlugin = require('../webpackPlugins/CustomTasksPlugin');
let ManifestPlugin = require('../webpackPlugins/ManifestPlugin');
let MockEntryPlugin = require('../webpackPlugins/MockEntryPlugin');
module.exports = function() {
let plugins = [];
// If the user didn't declare any JS compilation, we still need to
// use a temporary script to force a compile. This plugin will
// handle the process of deleting the compiled script.
if (!Mix.bundlingJavaScript) {
plugins.push(new MockEntryPlugin());
}
// Activate better error feedback in the console.
plugins.push(
new FriendlyErrorsWebpackPlugin({
clearConsole: Config.clearConsole
})
);
// Activate support for Mix_ .env definitions.
plugins.push(
MixDefinitionsPlugin.build({
NODE_ENV: Mix.inProduction()
? 'production'
: process.env.NODE_ENV || 'development'
})
);
// Add some general Webpack loader options.
plugins.push(
new webpack.LoaderOptionsPlugin({
minimize: Mix.isUsing('purifyCss') ? false : Mix.inProduction(),
options: {
context: __dirname,
output: {
path: './'
}
}
})
);
// Handle all custom, non-webpack tasks.
plugins.push(new ManifestPlugin());
// Handle all custom, non-webpack tasks.
plugins.push(new CustomTasksPlugin());
// Notify the rest of our app when Webpack has finished its build.
plugins.push(
new BuildCallbackPlugin(stats => Mix.dispatch('build', stats))
);
return plugins;
};