const { VueLoaderPlugin } = require('vue-loader'); const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = (env, argv) => { const isDevelopment = argv.mode === 'development'; return { entry: './src/main.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), clean: true }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' }, { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] } ] }, plugins: [ new VueLoaderPlugin(), new HtmlWebpackPlugin({ template: './index.html', filename: 'index.html' }) ], devServer: { static: { directory: path.join(__dirname, 'dist'), }, hot: true, open: true, historyApiFallback: true, port: 8080 }, resolve: { alias: { '@': path.resolve(__dirname, 'src'), 'vue': '@vue/runtime-dom' }, extensions: ['.js', '.vue', '.json'] }, devtool: isDevelopment ? 'eval-source-map' : 'source-map' }; };