const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const { VueLoaderPlugin } = require('vue-loader'); module.exports = { entry: './src/main.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', clean: true }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' }, { test: /\.ts$/, loader: 'ts-loader', options: { appendTsSuffixTo: [/\.vue$/], transpileOnly: true }, exclude: /node_modules/ }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] } ] }, plugins: [ new VueLoaderPlugin(), new HtmlWebpackPlugin({ template: './public/index.html' }) ], resolve: { extensions: ['.ts', '.js', '.vue', '.json'], alias: { '@': path.resolve(__dirname, 'src'), 'vue': path.resolve(__dirname, 'node_modules/vue/dist/vue.esm-bundler.js') } }, devServer: { static: { directory: path.join(__dirname, 'public') }, compress: true, port: 8080, hot: true } };