61 lines
1.9 KiB
JavaScript
Vendored
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;
|
|
};
|