corporate-frontend-mithril
Version:
Corporate frontend MithrilJS modules
77 lines (73 loc) • 2.28 kB
JavaScript
const globalConfig = require('./_global');
const app = globalConfig.app;
const merge = require('webpack-merge');
const common = require('./common');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const globImporter = require('node-sass-glob-importer');
const path = require('path');
module.exports = merge(common, {
mode: 'development',
devtool: 'source-map',
devServer: {
hot: true,
contentBase: './dist',
port: 9010,
proxy: {
'/api': 'http://localhost:3001',
},
/*overlay: {
errors: true,
warnings: true,
},*/
},
module: {
rules: [{
test: /(\.css|\.scss)$/,
use: [{
loader: 'css-hot-loader',
}].concat(ExtractTextPlugin.extract({
use: [{
loader: 'css-loader',
}, {
loader: 'postcss-loader',
}, {
loader: 'sass-loader',
options: {
importer: globImporter(),
},
}, {
loader: 'sass-resources-loader',
options: {
resources: require(path.join(process.cwd(), 'src/styles/utils.js')),
},
}],
// use style-loader in development
fallback: 'style-loader',
})),
}, {
test: /\.js$/,
enforce: 'pre',
exclude: /node_modules/,
loader: 'eslint-loader',
options: {
cache: true,
configFile: '.eslintrc.js',
emitWarning: true,
// Fail only on errors
failOnWarning: false,
failOnError: false,
// Toggle autofix
fix: false,
formatter: require('eslint/lib/formatters/stylish'),
},
}],
},
plugins: [
new ExtractTextPlugin({
filename: (getPath) => getPath('css/[name].css'),
allChunks: true,
}),
new webpack.HotModuleReplacementPlugin(),
],
});