const CopyWebpackPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path'); const routes = require('./src/routes.json'); const TemplateConfig = require('./src/template-config.js'); // Prepare all entry points const entry = { // common: [ // // Vendor // 'react', // 'react-dom' // ] }; routes.forEach(route => { if (!route.redirect) { entry[route.name] = `./src/views/${route.name}/${route.name}.jsx`; } }); module.exports = { entry: entry, output: { path: path.resolve(__dirname, 'build'), filename: 'js/[name].bundle.js' }, module: { loaders: [{ test: /\.jsx$/, loader: 'babel-loader', include: path.resolve(__dirname, 'src'), query: { presets: ['es2015', 'react'] } }, { test: /\.scss$/, loader: 'style!css!postcss-loader!sass' }, { test: /\.json$/, loader: 'json-loader' }, { test: /\.css$/, loader: 'style!css!postcss-loader' }, { test: /\.(png|jpg|gif|eot|svg|ttf|woff)$/, loader: 'url-loader' }, { test: /\.less$/, loader: 'style!css!less' }] }, plugins: [ new CopyWebpackPlugin([{ from: 'static' }]) ].concat(routes .filter(route => !route.redirect) .map(route => new HtmlWebpackPlugin(Object.assign({}, TemplateConfig, { title: route.title, filename: `${route.name}.html`, route: route }))) ) };