const path = require('path');
const webpack = require('webpack');
// const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const BabiliPlugin = require('babili-webpack-plugin');
const plugin = new ExtractTextPlugin({
filename : '[name].css',
ignoreOrder : true //忽略排序
});
const PATHS = {
app : path.join(__dirname,'app'),
build : path.join(__dirname,'build')
};
module.exports = {
devServer : {
host : process.env.HOST,// 'localhost'
port : 8088, // 8080
overlay: {
errors : true,
warnings : true
},
hotOnly : true // --hot HMR命令
},
// devtool : 'eval-source-map',
performance : {
hints: 'warning',
maxEntrypointSize: 500000,// bytes
maxAssetSize: 450000
},
entry : {
//app : PATHS.app
index : './app/index.js',
about : './app/about.js',
a : './app/a.js',
vendor : ['react']
},
output : {
path : PATHS.build,
filename : '[name].js'
},
module:{
rules: [{
test: /\.js$/,
enforce: 'pre',
loader: 'eslint-loader',
options: {
emitWarning : true
}
},{
test : /\.css$/,
exclude: /node_modules/,
/*
use : [
'style-loader',
{
loader:'css-loader',
options:{
modules: true
}
}
],
*/
use : plugin.extract({
use: {
loader:'css-loader',
options:{
modules: true
}
},
fallback : 'style-loader'
})
}]
},
plugins : [
// new HtmlWebpackPlugin({
// title : 'Webpack demo'
// }),
plugin,
new BabiliPlugin(), //压缩
new webpack.optimize.CommonsChunkPlugin({ //分离打包
name: 'vendor'
}),
new webpack.HotModuleReplacementPlugin()//配置这个,就可以在pageage.json文件命令hmr省略--hot
]
};