1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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
- }
- };
|