UNPKG

multiple-select-js

Version:
89 lines (88 loc) 2.11 kB
const path = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') const { CleanWebpackPlugin } = require('clean-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const CompressionPlugin = require('compression-webpack-plugin'); module.exports = { mode: 'development', devtool: 'source-map', entry: { ['multiple-select']: './src/MultipleSelect.js', app: './src/app.js' }, // devtool: 'inline-source-map', devServer: { contentBase: './dist', }, optimization: { usedExports: true }, output: { filename: 'js/[name].js', path: path.resolve(__dirname, 'dist') }, plugins: [ new CleanWebpackPlugin(), new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: 'css/multiple-select.css', chunkFilename: '[id].css', }), new CompressionPlugin(), new HtmlWebpackPlugin({ template: './src/index.html' }), ], module: { rules: [ { test: /\.scss$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { publicPath: '../', hmr: process.env.NODE_ENV === 'development', }, }, 'css-loader', { loader: 'postcss-loader', // Run postcss actions options: { plugins: function () { // postcss plugins, can be exported to postcss.config.js return [ require('autoprefixer') ]; } } }, 'sass-loader' ] }, { test: /\.html$/, use: [ { loader: 'html-loader', options: { minimize: true } } ] }, { test: /\.(png|jpg|jpeg|gif|svg)$/, use: [ 'file-loader' ] } ] }, resolve: { extensions: ['.js', '.vue', '.json'], alias: { '@': path.resolve('src') } } }