1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- var _ = require('lodash');
- var path = require('path');
- var glob = require('glob').sync;
- var webpack = require('webpack');
- var COMMON_PATH = './wagtail/wagtailadmin/static/wagtailadmin/js/common.js';
- function appName(filename) {
- return _(filename)
- .split(path.sep)
- .get(2);
- }
- function entryPoint(filename) {
- var name = appName(filename);
- var entryName = path.basename(filename, '.entry.js');
- var outputPath = path.join('wagtail', name, 'static', name, 'js', entryName);
- return [outputPath, filename];
- }
- function entryPoints(paths) {
- return _(glob(paths))
- .map(entryPoint)
- .fromPairs()
- .value();
- }
- module.exports = function exports() {
- var CLIENT_DIR = path.resolve(__dirname, 'client', 'src');
- return {
- entry: entryPoints('./wagtail/**/static_src/**/app/*.entry.js'),
- resolve: {
- alias: {
- components: path.resolve(CLIENT_DIR, 'components')
- }
- },
- output: {
- path: './',
- filename: '[name].js',
- publicPath: '/static/js/'
- },
- plugins: [
- new webpack.ProvidePlugin({
- fetch: 'imports?this=>global!exports?global.fetch!whatwg-fetch'
- }),
- new webpack.optimize.CommonsChunkPlugin('common', COMMON_PATH, Infinity)
- ],
- devtool: '#inline-source-map',
- module: {
- loaders: [
- {
- test: /\.js$/,
- loader: 'babel',
- exclude: /node_modules/,
- include: [
- CLIENT_DIR,
- path.resolve(__dirname, 'wagtail')
- ]
- },
- {
- test: /\.jsx$/,
- loader: 'babel',
- exclude: /node_modules/,
- include: [
- CLIENT_DIR,
- path.resolve(__dirname, 'wagtail')
- ]
- }
- ]
- }
- };
- };
|