Не требуется в комплекте Webpack Dev Server Bundle

Я пытаюсь заставить Webpack работать с подключаемыми модулями для замены горячих модулей React, но все время получаю сообщение об ошибке require не определяется внутри моего сгенерированного пакета JS ... что не имеет смысла, потому что Webpack создает этот пакет и должен либо предоставлять require функция или преобразование requires (от node_modulesкод; весь мой код использует модуль ES import) в некоторую версию файла require.

По какой-то причине этого не происходит, но я не могу понять, почему или что я делаю не так. Все остальные вопросы, похоже, относятся к старым версиям Webpack, тогда как я использую последнюю версию 2020 года: Webpack 5.

У меня есть следующие webpack.config.js:

{
  mode: 'development',
  devtool: 'eval-cheap-module-source-map',
  devServer: {
    // contentBase: outputPath,
    compress: true,
    historyApiFallback: true,
    publicPath: '/',
  },
  entry: {
    main: ['webpack-hot-middleware/client', indexPath],
  },
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ['style-loader', 'css-loader'],
      },
      {
        test: /\.[jt]sx?$/,
        exclude: /node_modules/,
        resolve: {
          fallback: { assert: false }, // fix "assert comes from node"
          fullySpecified: false, // we don't have to import 'foo.js', just 'foo'
        },
        use: [
          {
            loader: require.resolve('babel-loader'),
            options: {
              plugins: [require.resolve('react-refresh/babel')],
            },
          },
        ],
      },
    ],
  },
  output: {
    path: outputPath,
    filename: '[name].js',
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new ReactRefreshWebpackPlugin(),
    new HtmlWebpackPlugin({
      filename: './index.html',
      template: './public/index.html',
    }),
  ],
  resolve: {
    modules: ['node_modules', '/home/jeremy/GoblinCrafted/admin/client'],
  },
};

Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам