diff options
Diffstat (limited to 'assets/webpack.config.js')
-rw-r--r-- | assets/webpack.config.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/assets/webpack.config.js b/assets/webpack.config.js new file mode 100644 index 0000000..4569a84 --- /dev/null +++ b/assets/webpack.config.js @@ -0,0 +1,41 @@ +const path = require('path'); +const glob = require('glob'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); + +module.exports = (env, options) => ({ + optimization: { + minimizer: [ + new TerserPlugin({ cache: true, parallel: true, sourceMap: false }), + new OptimizeCSSAssetsPlugin({}) + ] + }, + entry: { + './js/app.js': glob.sync('./vendor/**/*.js').concat(['./js/app.js']) + }, + output: { + filename: 'app.js', + path: path.resolve(__dirname, '../priv/static/js') + }, + module: { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader' + } + }, + { + test: /\.css$/, + use: [MiniCssExtractPlugin.loader, 'css-loader'] + } + ] + }, + plugins: [ + new MiniCssExtractPlugin({ filename: '../css/app.css' }), + new CopyWebpackPlugin([{ from: 'static/', to: '../' }]) + ] +}); |