79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Default dev server configuration.
|
|
*/
|
|
const webpack = require('webpack');
|
|
const WebpackBaseConfig = require('./Base');
|
|
|
|
class WebpackDevConfig extends WebpackBaseConfig {
|
|
|
|
constructor() {
|
|
super();
|
|
this.config = {
|
|
devtool: 'cheap-module-source-map',
|
|
entry: [
|
|
'webpack-dev-server/client?http://0.0.0.0:5000/',
|
|
'webpack/hot/only-dev-server',
|
|
'react-hot-loader/patch',
|
|
'./client.js'
|
|
],
|
|
plugins: [
|
|
new webpack.HotModuleReplacementPlugin(),
|
|
new webpack.NoEmitOnErrorsPlugin(),
|
|
new webpack.ProvidePlugin({
|
|
$: "jquery",
|
|
jQuery: "jquery",
|
|
"window.jQuery": "jquery"
|
|
}),
|
|
new webpack.DefinePlugin({
|
|
'process.env': {
|
|
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
|
|
},
|
|
}),
|
|
]
|
|
};
|
|
|
|
this.config.module.rules = this.config.module.rules.concat([
|
|
{
|
|
test: /^.((?!cssmodule).)*\.(sass|scss)$/,
|
|
loaders: [
|
|
{ loader: 'style-loader' },
|
|
{
|
|
loader: 'css-loader',
|
|
options: {
|
|
sourceMap: true
|
|
}
|
|
},
|
|
{
|
|
loader: 'sass-loader',
|
|
options: {
|
|
sourceMap: true
|
|
}
|
|
}
|
|
]
|
|
}, {
|
|
test: /^.((?!cssmodule).)*\.less$/,
|
|
use: [
|
|
{ loader: "style-loader" },
|
|
{
|
|
loader: "css-loader",
|
|
options: {
|
|
sourceMap: true
|
|
}
|
|
}, {
|
|
loader: "less-loader",
|
|
options: {
|
|
sourceMap: true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
])
|
|
|
|
// console.log(this.config.module.rules);
|
|
}
|
|
}
|
|
|
|
module.exports = WebpackDevConfig;
|