Files
filestash/webpack.config.js
2018-06-05 16:49:22 +10:00

67 lines
1.8 KiB
JavaScript

const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const UglifyJSPlugin = require("uglifyjs-webpack-plugin");
let config = {
entry: {
polyfill: 'babel-polyfill',
app: path.join(__dirname, 'client', 'index.js')
},
output: {
path: path.join(__dirname, 'server', 'public'),
publicPath: '/',
filename: 'js/[name].js',
chunkFilename: "js/chunk.[name].[id].js"
},
module: {
rules: [
{
test: path.join(__dirname, 'client'),
use: ['babel-loader'],
exclude: /node_modules/
},
{
test: /\.html$/,
loader: 'html-loader'
},
{
test: /\.scss$/,
loaders: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.css$/,
loaders: ['style-loader', 'css-loader']
},
{
test: /\.(pdf|jpg|png|gif|svg|ico|woff|woff2|eot|ttf)$/,
loader: "url-loader"
}
]
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
}),
new webpack.optimize.OccurrenceOrderPlugin(),
new HtmlWebpackPlugin({
template: path.join(__dirname, 'client', 'index.html'),
inject:true
}),
//new BundleAnalyzerPlugin()
]
};
if(process.env.NODE_ENV === 'production'){
config.plugins.push(new UglifyJSPlugin({
sourceMap: false
}));
}else{
config.devtool = '#inline-source-map';
}
module.exports = config;