text: const webpack = require('webpack');
  const path = require('path');
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  const HtmlWebpackPlugin = require('html-webpack-plugin');
  const CopyWebpackPlugin = require('copy-webpack-plugin');
  const { VueLoaderPlugin } = require('vue-loader');
  
  module.exports = {
    devServer: {
      contentBase: path.resolve(__dirname, './src'),
      disableHostCheck: true
    },
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /(node_modules)/,
          loader: 'babel-loader',
        },
        {
          test: /\.vue$/,
          loader: 'vue-loader',
        },
        {
          test: /\.scss$/,
          use: [
            {
              loader: MiniCssExtractPlugin.loader,
            },
            'css-loader',
            'sass-loader',
          ],
        },
        {
          test: /\.png/,
          type: 'asset/resource',
        },
        {
          test: /\.worker\.js$/,
          loader: 'worker-loader',
        },
      ]
    },
    plugins: [
      new MiniCssExtractPlugin({ filename: 'styles.css' }),
      new CopyWebpackPlugin({
        patterns: [
          { from: 'src/assets/favicon.png', to: 'favicon.png' },
          { from: 'src/wasm_exec.js', to: 'wasm_exec.js' },
          { from: 'src/wasm', to: 'wasm' },
        ],
      }),
      new HtmlWebpackPlugin({
        meta: { viewport: 'width=device-width, initial-scale=1' },
        template: 'src/index.html',
        inject: false,
      }),
      new VueLoaderPlugin(),
    ]
  };
  