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

搭建NodeJS+ExpressJS后端服务时遭遇大量模块未找到错误求助

Node.js + Express 后端「模块未找到」错误排查与解决

搭建Node.js和Express后端服务时,出现大量「模块未找到」错误,以下是项目相关信息及解决方案:

项目配置文件

package.json

{
  "name": "node-assignment",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "build": "webpack --config webpack.config.js",
    "start:dev": "cross-env NODE_ENV=development nodemon server.js",
    "start:prod": "npm run build && NODE_ENV=production node build/bundle.js"
  },
  "author": "Het Patel",
  "license": "ISC",
  "dependencies": {
    "cross-env": "^7.0.3",
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "mongoose": "^6.9.2",
    "morgan": "^1.10.0",
    "webpack": "^5.82.0",
    "webpack-cli": "^5.1.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.20"
  }
}

webpack.config.js

const path = require("path");

module.exports = {
  mode: "production",
  entry: "./server.js",
  output: {
    path: path.resolve(__dirname, "build"),
    filename: "bundle.js",
  },
};

项目文件结构

项目文件结构

控制台报错截图

控制台报错截图


解决方案

1. 配置Webpack针对Node.js环境打包

Webpack默认目标环境是浏览器(target: 'web'),会将Node.js核心模块及第三方依赖当作浏览器模块处理,导致运行时找不到模块。需修改webpack.config.js,添加target: 'node':

const path = require("path");

module.exports = {
  mode: "production",
  target: "node", // 指定打包目标为Node.js环境
  entry: "./server.js",
  output: {
    path: path.resolve(__dirname, "build"),
    filename: "bundle.js",
  },
};

该配置会让Webpack保留Node.js的require语句,不会将node_modules中的依赖打包进bundle,而是让Node.js在运行时自行加载。

2. 检查文件导入路径

确认项目中所有相对路径导入(如routes、models目录下的文件引用)是否正确,避免因路径拼写错误导致模块找不到。

3. 确保依赖安装完整

执行以下命令重新安装所有依赖,避免因依赖缺失引发错误:

npm install

内容的提问来源于stack exchange,提问作者Het Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:05:24