Skip to content

Instantly share code, notes, and snippets.

@lnked
Last active May 30, 2017 08:55
Show Gist options
  • Save lnked/c8125be4f60b860ed6b5854ac985888a to your computer and use it in GitHub Desktop.
Save lnked/c8125be4f60b860ed6b5854ac985888a to your computer and use it in GitHub Desktop.
'use strict';
const webpack = require('webpack');
const { resolve } = require('path');
const rules = require('./rules');
const define = require('./define');
const plugins = require('./plugins');
module.exports = {
context: define.rs_root,
devtool: define.rs_development ? 'cheap-module-eval-source-map' : false,
target: 'web', // 'web' | 'node' | electron-main | electron-renderer
entry: {
vendor: [
'react',
'react-dom',
'react-router-dom'
],
app: resolve(define.rs_root, 'app.jsx'),
styles: resolve(define.rs_root, 'app.scss')
},
output: {
path: define.rs_dist,
pathinfo: define.rs_development,
publicPath: define.rs_output_path,
filename: define.rs_production ? '[name].[chunkhash:5].bundle.js' : '[name].js',
chunkFilename: define.rs_production ? '[name].[chunkhash:5].chunk.js' : '[name].chunk.js',
jsonpFunction: 'WJ',
hotUpdateFunction: 'UF'
},
resolve: {
symlinks: true,
modules: [define.rs_root, 'node_modules'],
mainFiles: ['index'],
enforceExtension: false,
enforceModuleExtension: false,
extensions: ['.js', '.jsx', '.json', '.scss'],
descriptionFiles: ['package.json', 'bower.json'],
alias: {
utils: resolve(define.rs_root, 'utils'),
assets: resolve(define.rs_root, 'assets'),
config: resolve(define.rs_root, 'config'),
layouts: resolve(define.rs_root, 'layouts'),
segments: resolve(define.rs_root, 'segments'),
containers: resolve(define.rs_root, 'containers'),
components: resolve(define.rs_root, 'components'),
images: resolve(define.rs_root, 'assets/images'),
styles: resolve(define.rs_root, 'assets/styles'),
scripts: resolve(define.rs_root, 'assets/scripts'),
svgstore: resolve(define.rs_root, 'assets/svgstore'),
store: resolve(define.rs_root, 'redux/store'),
actions: resolve(define.rs_root, 'redux/actions'),
reducers: resolve(define.rs_root, 'redux/reducers')
}
},
resolveLoader: {
modules: ['node_modules']
},
module: {
rules: rules.config
},
performance: {
hints: define.rs_production ? 'warning' : false,
maxAssetSize: 300000,
maxEntrypointSize: 400000,
assetFilter: (assetFilename) => !(/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename))
},
devServer: {
headers: { 'Access-Control-Allow-Origin': '*' },
compress: false,
contentBase: define.rs_dist,
watchContentBase: define.rs_development,
historyApiFallback: true,
watchOptions: {
aggregateTimeout: 100,
poll: 1000
},
overlay: {
warnings: true,
errors: true
},
stats: {
modules: false,
cached: false,
colors: true,
chunk: false
},
hot: true,
host: '0.0.0.0'
},
watch: define.rs_development,
plugins: plugins.config,
bail: define.rs_production,
cache: define.rs_development,
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment