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

Node.js运行报错Cannot find local module本地模块找不到排查

问题描述

项目中引入本地自定义开发的库时,执行启动命令抛出模块找不到错误,执行命令与完整报错日志如下:

PS C:\Users\dydie\Documents\Proyecto Sena> node src/index.js
node:internal/modules/cjs/loader:942
  throw err;
  ^

Error: Cannot find module './back js/algorithms.js'
Require stack:
- C:\Users\dydie\Documents\Proyecto Sena\src\back js\utilities.js
- C:\Users\dydie\Documents\Proyecto Sena\src\index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
    at Module._load (node:internal/modules/cjs/loader:780:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\dydie\Documents\Proyecto Sena\src\back js\utilities.js:4:19)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Module._load (node:internal/modules/cjs/loader:827:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\dydie\\Documents\\Proyecto Sena\\src\\back js\\utilities.js',
    'C:\\Users\\dydie\\Documents\\Proyecto Sena\\src\\index.js'
  ]
}

Node.js v18.0.0

初步怀疑是index.js中如下引入代码触发报错:

const utilities = require("./back js/utilities.js");

存在反常现象:完全相同的引入代码此前在其他文件中可正常运行,对应关联功能目前也能正常使用;已尝试删除node_modules目录后重新安装依赖,问题没有解决。

根因定位

你一开始找错了报错的代码位置。
看错误栈的明确提示:报错抛出的真实位置是C:\Users\dydie\Documents\Proyecto Sena\src\back js\utilities.js的第4行,是这个文件内部引入./back js/algorithms.js时找不到对应文件,和你怀疑的index.js中引入utilities的代码没有关系——这也是为什么你觉得同一段引入代码之前能跑、相关功能也正常,因为那行代码本身就没有出错。

排查与修复步骤
  • 第一步:打开src/back js/utilities.js文件,定位到第4行的require语句,确认这里写的引入路径是./back js/algorithms.js
  • 第二步:修正路径写法:Node.js中./开头的相对路径,是相对于当前执行require的文件所在目录计算的。utilities.js本身就存放在back js文件夹下,这时候写./back js/algorithms.js会被解析为src/back js/back js/algorithms.js,多嵌套了一层目录,自然找不到目标文件。两个同目录下的文件直接写require('./algorithms.js')即可
  • 第三步(路径校验):如果不确定路径解析是否正确,可以在require语句前加一行console.log(require.resolve('./algorithms.js')),运行后如果能正常打印出algorithms.js的绝对路径,说明路径配置正确;如果还是报错,直接打开文件资源管理器核对algorithms.js的实际存放位置,对应调整相对路径即可

补充提示:目录名、文件名带空格不会影响Node.js的模块解析,不需要特意修改文件夹名去掉空格,避免改动目录结构引发其他路径错误。另外重装node_modules仅能解决npm第三方依赖的缺失问题,对项目本地自定义模块的路径错误完全无效,遇到这类MODULE_NOT_FOUND报错优先看requireStack定位真实报错位置,不要盲目重装依赖浪费时间。

内容的提问来源于stack exchange,提问作者Dydier Ripe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:45:18