generator-react-webpack/templates/common/_webpack.dist.config.js
2015-09-21 16:52:35 +02:00

78 lines
2.0 KiB
JavaScript

/*
* Webpack distribution configuration
*
* This file is set up for serving the distribution version. It will be compiled to dist/ by default
*/
'use strict';
var webpack = require('webpack');
module.exports = {
output: {
publicPath: '/assets/',
path: 'dist/assets/',
filename: 'main.js'
},
debug: false,
devtool: false,
entry: './src/components/<% if (reactRouter) { %>main<% } else { %><%= scriptAppName %><% } %>.js',
stats: {
colors: true,
reasons: false
},
plugins: [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.AggressiveMergingPlugin(),
new webpack.NoErrorsPlugin()
],
resolve: {
extensions: ['', '.js', '.jsx'],
alias: {
'styles': __dirname + '/src/styles',
'mixins': __dirname + '/src/mixins',
'components': __dirname + '/src/components/'<% if(architecture==='flux'||architecture=='reflux') { %>,
'stores': __dirname + '/src/stores/',
'actions': __dirname + '/src/actions/'<% } %>
}
},
module: {
preLoaders: [{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: 'eslint-loader'
}],
loaders: [{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: 'babel-loader'
}, {
test: /\.css$/,
loader: 'style-loader!css-loader'
},<% if (stylesLanguage === 'sass') { %> {
test: /\.sass/,
loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded&indentedSyntax'
},<% } %><% if (stylesLanguage === 'scss') { %> {
test: /\.scss/,
loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded'
},<% } %><% if (stylesLanguage === 'less') { %> {
test: /\.less/,
loader: 'style-loader!css-loader!less-loader'
},<% } %><% if (stylesLanguage === 'stylus') { %> {
test: /\.styl/,
loader: 'style-loader!css-loader!stylus-loader'
},<% } %> {
test: /\.(png|jpg|woff|woff2)$/,
loader: 'url-loader?limit=8192'
}]
}
};