const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const webpack = require('webpack'); module.exports = { mode: 'development', entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }, // 添加处理Node.js模块的配置 resolve: { fallback: { "fs": false, "path": require.resolve("path-browserify"), "buffer": require.resolve("buffer/"), "stream": require.resolve("stream-browserify"), "util": require.resolve("util/"), "assert": require.resolve("assert/"), "os": require.resolve("os-browserify/browser"), "process": require.resolve("process/browser") }, // 添加别名配置,修复ESM模块中的process/browser引用问题 alias: { 'process/browser': require.resolve('process/browser') } }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env', '@babel/preset-react'] } } }, { test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.(png|svg|jpg|jpeg|gif|woff|woff2)$/i, type: 'asset/resource' } ] }, plugins: [ new HtmlWebpackPlugin({ template: './public/index.html', favicon: './public/logo.ico' }), // 添加Buffer polyfill new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], }), // 添加process polyfill new webpack.ProvidePlugin({ process: 'process/browser', }), // 添加全局变量定义,确保process.browser设置为true new webpack.DefinePlugin({ 'process.browser': true }) ], devServer: { static: { directory: path.join(__dirname, 'public'), }, compress: true, port: 9000, open: true } };