// ------------------
|
|
// @Table of Contents
|
|
// ------------------
|
|
|
|
/**
|
|
* + @Loading Dependencies
|
|
* + @Common Plugins
|
|
* + @Merging Production Plugins
|
|
* + @Merging Development Plugins
|
|
* + @Exporting Module
|
|
*/
|
|
|
|
|
|
// ---------------------
|
|
// @Loading Dependencies
|
|
// ---------------------
|
|
|
|
const
|
|
manifest = require('../manifest'),
|
|
webpack = require('webpack');
|
|
|
|
|
|
// ---------------
|
|
// @Common Plugins
|
|
// ---------------
|
|
|
|
const
|
|
plugins = [];
|
|
|
|
plugins.push(
|
|
// new webpack.DefinePlugin({
|
|
// 'process.env': {
|
|
// NODE_ENV: JSON.stringify(manifest.NODE_ENV),
|
|
// },
|
|
// }),
|
|
|
|
|
|
// new webpack.optimize.CommonsChunkPlugin({
|
|
// name: 'vendor',
|
|
// filename: manifest.outputFiles.vendor,
|
|
// minChunks(module) {
|
|
// const { context } = module;
|
|
// return context && context.indexOf('node_modules') >= 0;
|
|
// },
|
|
// }),
|
|
|
|
new webpack.ProvidePlugin({
|
|
$: 'jquery',
|
|
jQuery: 'jquery',
|
|
'window.jQuery': 'jquery',
|
|
// Popper: ['popper.js', 'default'],
|
|
})
|
|
);
|
|
|
|
|
|
// ---------------------------
|
|
// @Merging Production Plugins
|
|
// ---------------------------
|
|
|
|
// if (manifest.IS_PRODUCTION) {
|
|
// plugins.push(
|
|
// new webpack.optimize.UglifyJsPlugin({
|
|
// compress: {
|
|
// comparisons : true,
|
|
// conditionals : true,
|
|
// dead_code : true,
|
|
// drop_debugger : true,
|
|
// evaluate : true,
|
|
// if_return : true,
|
|
// join_vars : true,
|
|
// screw_ie8 : true,
|
|
// sequences : true,
|
|
// unused : true,
|
|
// warnings : false,
|
|
// },
|
|
|
|
// output: {
|
|
// comments: false,
|
|
// },
|
|
// })
|
|
// );
|
|
// }
|
|
|
|
|
|
// ----------------------------
|
|
// @Merging Development Plugins
|
|
// ----------------------------
|
|
|
|
if (manifest.IS_DEVELOPMENT) {
|
|
plugins.push(
|
|
// new webpack.NoEmitOnErrorsPlugin(),
|
|
// new webpack.NamedModulesPlugin(),
|
|
new webpack.HotModuleReplacementPlugin()
|
|
);
|
|
}
|
|
|
|
|
|
// -----------------
|
|
// @Exporting Module
|
|
// -----------------
|
|
|
|
module.exports = plugins;
|