Files
old-svijetlastrana-front/config/webpack/Dist.js
2018-05-07 16:07:00 +02:00

89 lines
2.3 KiB
JavaScript

'use strict';
/**
* Dist configuration. Used to build the
* final output when running npm run dist.
*/
const webpack = require('webpack');
const WebpackBaseConfig = require('./Base');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const path = require('path');
const ROOT = path.resolve(__dirname, '../..');
function root(args) {
args = Array.prototype.slice.call(arguments, 0);
return path.join.apply(path, [ROOT].concat(args));
}
class WebpackDistConfig extends WebpackBaseConfig {
constructor() {
super();
this.config = {
cache: false,
devtool: 'source-map',
entry: [
'./client.js'
],
output: {
path: root('dist'),
publicPath: '/',
filename: 'assets/app.js',
chunkFilename: 'assets/[id].[hash].chunk.js'
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
new webpack.optimize.AggressiveMergingPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
}),
new CopyWebpackPlugin([
{ from: root('public/'), to: root('dist/') },
{ from: root('src/assets/images'), to: root('dist/assets/images') },
//{ from: root('src/assets/images-demo'), to: root('dist/assets/images-demo') },
]),
]
};
// Deactivate hot-reloading if we run dist build on the dev server
this.config.devServer.hot = false;
this.config.module.rules = this.config.module.rules.concat([
{
test: /^.((?!cssmodule).)*\.(sass|scss)$/,
loaders: [
{ loader: 'style-loader' },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' }
]
}, {
test: /^.((?!cssmodule).)*\.less$/,
loaders: [
{ loader: 'style-loader' },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'less-loader' }
]
}
])
}
/**
* Get the environment name
* @return {String} The current environment
*/
get env() {
return 'dist';
}
}
module.exports = WebpackDistConfig;