Files
piratepoet/webpack.config.js
Jonathan Labreuille bc65836c31 Webpack refactor
- added JSX support (webpack + robofile
- added public.js bundle
- refactored webpack config for clarity
- added settings.jsx form example
- fixed acceptance test failing on login
2015-08-19 19:29:11 +02:00

77 lines
1.4 KiB
JavaScript

var webpack = require('webpack'),
_ = require('underscore'),
baseConfig = {},
config = [];
baseConfig = {
context: __dirname,
output: {
path: './assets/js',
filename: '[name].js',
},
resolve: {
modulesDirectories: [
'node_modules',
'assets/js/src'
]
},
node: {
fs: 'empty'
},
module: {
loaders: [
{
test: /\.jsx$/,
loader: 'babel-loader'
}
]
}
};
// Admin
config.push(_.extend({}, baseConfig, {
name: 'admin',
entry: {
vendor: ['handlebars', 'handlebars_helpers'],
mailpoet: ['mailpoet', 'ajax', 'modal', 'notice'],
admin: ['settings.jsx']
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js'),
],
externals: {
'jquery': 'jQuery'
}
}));
// Public
config.push(_.extend({}, baseConfig, {
name: 'public',
entry: {
public: 'public.js'
},
externals: {
'jquery': 'jQuery'
}
}));
// Test
config.push(_.extend({}, baseConfig, {
name: 'test',
entry: {
testAjax: 'testAjax.js',
},
output: {
path: './tests/javascript/testBundles',
filename: '[name].js',
},
resolve: {
modulesDirectories: [
'node_modules',
'assets/js/src',
'tests/javascript/newsletter_editor'
]
}
}));
module.exports = config;