You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新版本React项目遭遇Webpack模块缺失问题求助

Webpack缺失Node核心模块错误解决方案

Webpack缺失模块错误

我已按照相关指引操作,但仍未解决该错误,目前毫无头绪。我认为使用4.0.3版本的React项目可能能修复问题,但不知如何实现。我尝试安装了https-browserify、zlib、browserify-zlib,还在项目中创建webpack.global.js文件添加fallback配置,但均未成功。

我的package.json配置如下:

{
  "name": "self-improvement",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "@types/jest": "^29.5.0",
    "@types/node": "^16.11.14",
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.11",
    "ansi-html-community": "^0.0.8",
    "babel-loader": "^9.1.3",
    "browserify-zlib": "^0.2.0",
    "discord-oauth2": "^2.12.0",
    "eris": "^0.17.2",
    "https": "^1.0.0",
    "https-browserify": "^1.0.0",
    "postcss-loader": "^7.3.4",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.2.1",
    "react-scripts": "4.0.3",
    "source-map-loader": "^4.0.2",
    "typescript": "^4.5.4",
    "web-vitals": "^2.1.4",
    "zlib": "^1.0.5"
  },
  "devDependencies": {
    "assert": "^2.1.0",
    "autoprefixer": "^10.4.8",
    "buffer": "^6.0.3",
    "crypto-browserify": "^3.12.0",
    "os-browserify": "^0.3.0",
    "postcss": "^8.4.16",
    "process": "^0.11.10",
    "react-app-rewired": "^2.2.1",
    "stream-browserify": "^3.0.0",
    "stream-http": "^3.2.0",
    "tailwindcss": "^3.1.8",
    "url": "^0.11.3"
  },
}

问题根源与解决步骤

1. 核心问题:引入Node端专属库

你依赖里的eris是Discord的Node.js机器人库,它本身依赖Node.js核心模块(如https、zlib),这些模块在浏览器环境下不存在,这才是Webpack报错的根本原因。如果你的项目是前端项目(用于浏览器运行),完全不需要这个包,直接移除:

npm uninstall eris

2. 修正Webpack配置(通过react-app-rewired)

你已经安装了react-app-rewired,但配置文件位置不对——在项目根目录创建config-overrides.js,内容如下:

const webpack = require('webpack');

module.exports = function override(config, env) {
  // 配置Webpack fallback,映射Node核心模块到浏览器兼容版本
  config.resolve.fallback = {
    ...config.resolve.fallback,
    "https": require.resolve("https-browserify"),
    "zlib": require.resolve("browserify-zlib"),
    "stream": require.resolve("stream-browserify"),
    "buffer": require.resolve("buffer"),
    "crypto": require.resolve("crypto-browserify"),
    "os": require.resolve("os-browserify"),
    "url": require.resolve("url"),
    "assert": require.resolve("assert")
  };

  // 注入全局变量,模拟Node环境
  config.plugins.push(
    new webpack.ProvidePlugin({
      Buffer: ['buffer', 'Buffer'],
      process: 'process/browser'
    })
  );

  return config;
};

3. 清理不必要的依赖

移除dependencies里的https、zlib包(这些是Node核心模块,不需要单独安装,你已经有browserify的兼容版本):

npm uninstall https zlib

4. 修改启动脚本

在package.json的scripts里替换react-scripts为react-app-rewired:

"scripts": {
  "start": "react-app-rewired start",
  "build": "react-app-rewired build",
  "test": "react-app-rewired test",
  "eject": "react-scripts eject"
}

5. 验证修复

重新启动项目:

npm start

内容的提问来源于stack exchange,提问作者John Nagy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:17:48