const path = require('path'); const webpack = require('webpack'); /* * SplitChunksPlugin is enabled by default and replaced * deprecated CommonsChunkPlugin. It automatically identifies modules which * should be splitted of chunk by heuristics using module duplication count and * module category (i. e. node_modules). And splits the chunks… * * It is safe to remove "splitChunks" from the generated configuration * and was added as an educational example. * * https://webpack.js.org/plugins/split-chunks-plugin/ * */ const HtmlWebpackPlugin = require('html-webpack-plugin'); /* * We've enabled HtmlWebpackPlugin for you! This generates a html * page for you when you compile webpack, which will make you start * developing and prototyping faster. * * https://github.com/jantimon/html-webpack-plugin * */ module.exports = { mode: 'production', entry: { 'createPage': './src/createPage/ext.isekai.createPage.js', 'discover': './src/discover/ext.isekai.discover.js', }, output: { filename: '[name]/ext.isekai.[name].js', path: path.resolve(__dirname, 'modules') }, plugins: [new webpack.ProgressPlugin(), new HtmlWebpackPlugin()], module: { rules: [ { test: /.(js|jsx)$/, include: [path.resolve(__dirname, 'src')], loader: 'babel-loader', options: { plugins: ['syntax-dynamic-import'], presets: [ [ '@babel/preset-env', { modules: false } ] ] } }, { test: /.(scss)$/, use: [{ loader: 'css-loader', }, { loader: 'sass-loader', }], }, { test: /.(less)$/, loader: 'less-loader', } ] }, optimization: { splitChunks: { cacheGroups: { vendors: { priority: -10, test: /[\\/]node_modules[\\/]/ } }, chunks: 'async', minChunks: 1, minSize: 30000, name: true } }, devServer: { open: true } };