Node.js报MODULE_NOT_FOUND错误:无法找到模块该如何解决?
解决Node.js "Cannot find module" 错误的方案
先贴出你遇到的完整错误信息:
node:internal/modules/cjs/loader:1029 throw err; ^ Error: Cannot find module '/home/hiranwj/list' at Module._resolveFilename (node:internal/modules/cjs/loader:1026:15) at Module._load (node:internal/modules/cjs/loader:872:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:82:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', }
核心问题是Node找不到/home/hiranwj/list对应的模块文件,按以下步骤排查解决:
检查文件路径与文件名
- 确认
/home/hiranwj/目录下存在目标文件,Node默认识别.js/.cjs/.mjs后缀,要么运行命令时写全文件名(比如node /home/hiranwj/list.js),要么确保Node能自动识别后缀。 - Linux系统文件名区分大小写,别把
List.js写成list.js,路径里的目录名也要仔细核对拼写。
- 确认
排查代码中的导入路径
如果是代码里用require('/home/hiranwj/list')或import导入该模块:- 确认目标文件确实在指定路径下
- 相对路径要加
./(比如当前目录下的文件得写./list而非list),绝对路径要保证拼写完全正确
清理Node模块缓存
偶尔缓存会导致异常,运行以下命令清理后重试:node --clear-module-cache确认模块格式兼容性
如果用的是ESM模块(import/export语法):- 要么把目标文件后缀改成
.mjs,要么在项目根目录的package.json里添加"type": "module"字段
- 要么把目标文件后缀改成
内容的提问来源于stack exchange,提问作者hiranwj
相关产品推荐
相关产品推荐

