Node.js运行报MODULE_NOT_FOUND错误,文件存在仍无法找到模块如何解决?
Node.js MODULE_NOT_FOUND报错(文件实际存在)排查方案
- 核对路径空格与大小写
你的目标路径存在多处空格(如Seneca Course、Web Programming WEB 700),如果是命令行直接执行node命令运行文件,带空格的路径必须用引号包裹,否则Node会将空格后的内容识别为独立参数,无法匹配到正确文件。同时确认代码中引入模块时的路径大小写,和实际文件、目录的大小写完全一致,MacOS文件系统大小写不敏感的特性也可能在部分场景下触发模块找不到的报错。 - 检查文件实际后缀
Mac访达默认隐藏常见文件后缀,右键目标文件选择「显示简介」,确认「名称与扩展名」字段为collegeData.js,没有隐藏的.txt等其他后缀。同时确认文件名没有以.开头,这类文件在Mac下默认隐藏,也会无法被识别。 - 确认工作目录匹配
如果你用相对路径引入模块,相对路径的基准是Node进程启动时的工作目录,而非代码文件本身的存储目录。在代码入口开头加入console.log(process.cwd())运行,打印当前Node的工作目录,确认和collegeData.js所在目录匹配。如果不匹配,可以先cd到对应目录再运行代码,或者改用绝对路径引入模块。 - 校验文件读取权限
打开终端执行命令:
确认当前用户对文件拥有可读权限,如果没有读权限,执行ls -l "/Users/vincent/Desktop/Seneca Course/Web Programming WEB 700/Assignment/Assignment 2 Code/collegeData.js"chmod +r 对应文件路径添加权限即可解决。
内容的提问来源于stack exchange,提问作者Vincent Tian
相关产品推荐
相关产品推荐

