123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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, ['babel-polyfill', filename]];
- }
- function entryPoints(paths) {
- return _(glob(paths))
- .map(entryPoint)
- .fromPairs()
- .value();
- }
- module.exports = function exports() {
- var CLIENT_DIR = path.resolve(__dirname, '..', 'src');
- return {
- entry: entryPoints('./wagtail/**/static_src/**/app/*.entry.js'),
- resolve: {
- alias: {
- config: path.resolve(CLIENT_DIR, 'config'),
- 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)
- ],
- module: {
- loaders: [
- {
- test: /\.(js|jsx)$/,
- loader: 'babel'
- },
- ]
- }
- };
- };
|