diff options
author | msquare <msquare@notrademark.de> | 2018-08-12 12:42:58 +0200 |
---|---|---|
committer | msquare <msquare@notrademark.de> | 2018-08-12 12:42:58 +0200 |
commit | df30f7d5d89d8de3f61905d8e25eb361a06faa7f (patch) | |
tree | c9c07c9133b266224f1e91e7aabc4c40bf27f67d /webpack.config.js | |
parent | c55ae7c3190e48180371bab8f4d7ab4c5726ff13 (diff) | |
parent | b409d2986fcca5bcafdad4b3b33094c12d8530a6 (diff) |
merge pr #427: Use npm to handle frontend dependencies
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..b8bb7599 --- /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}`] = `./frontend/themes/theme${i}.less`; +} + +module.exports = { + context: __dirname, + resolve: { + extensions: ['.js', '.jsx'], + }, + entry: { + ...themeEntries, + vendor: './frontend/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, +}; |