Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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) => {
- const devMode = options.mode !== 'production';
- return {
- optimization: {
- minimizer: [
- new TerserPlugin({ cache: true, parallel: true, sourceMap: devMode }),
- new OptimizeCSSAssetsPlugin({})
- ]
- },
- entry: {
- 'app': glob.sync('./vendor/**/*.js').concat(['./js/app.js'])
- },
- output: {
- filename: '[name].js',
- path: path.resolve(__dirname, '../priv/static/js'),
- publicPath: '/js/'
- },
- devtool: devMode ? 'source-map' : undefined,
- module: {
- rules: [
- {
- test: /\.svelte$/,
- use: {
- loader: 'svelte-loader',
- options: {
- emitCss: true,
- hotReload: true
- }
- }
- },
- {
- test: /\.js$/,
- exclude: /node_modules/,
- use: {
- loader: 'babel-loader'
- }
- },
- {
- test: /\.css$/,
- use: [
- MiniCssExtractPlugin.loader,
- {
- loader: 'css-loader',
- options: {
- sourceMap: devMode
- }
- }
- ]
- }
- ]
- },
- plugins: [
- new MiniCssExtractPlugin({ filename: '../css/app.css' }),
- new CopyWebpackPlugin([{ from: 'static/', to: '../' }])
- ]
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement