diff options
Diffstat (limited to 'webpack.config.js')
-rw-r--r-- | webpack.config.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 00000000..261c1c44 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,59 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const nodeEnv = (process.env.NODE_ENV || 'development').trim(); + +// eslint-disable-next-line +const __DEV__ = nodeEnv !== 'production'; + +const devtool = __DEV__ ? '#source-map' : ''; + +const plugins = [ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(nodeEnv), + }, + }), + new ExtractTextPlugin('[name].css'), +]; + + +const themeEntries = {}; +for (let i = 0; i < 7; i++) { + themeEntries[`theme${i}`] = `./resources/assets/themes/theme${i}.less`; +} + +module.exports = { + context: __dirname, + resolve: { + extensions: ['.js', '.jsx'], + }, + entry: { + ...themeEntries, + vendor: './resources/assets/js/vendor.js', + }, + output: { + path: path.resolve('public/assets'), + filename: '[name].js', + publicPath: '', + }, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: /(node_modules)/, + loader: 'babel-loader', + query: { cacheDirectory: true }, + }, + { test: /\.(eot|ttf|otf|svg|woff2?)(\?.*)?$/, loader: 'file-loader' }, + { test: /\.json$/, loader: 'json-loader' }, + { test: /\.css$/, loader: 'style-loader!css-loader' }, + { test: /\.less$/, use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: 'css-loader!less-loader' + })} + ], + }, + plugins, + devtool, +}; |