MacOS下执行nodemon run start出现MODULE_NOT_FOUND报错的技术问询
报错核心原因
从报错堆栈的关键信息Cannot find module '/Users/jarvis/Documents/Backend/mongoTelusko/run'可直接定位问题:
- 该异常与MacOS系统兼容性无关,根源是启动命令的参数使用逻辑错误。
- nodemon的参数解析规则:除自身可识别的配置类参数外,命令行中紧跟
nodemon后的所有内容,都会被直接当作Node服务的入口文件路径查找加载。你执行nodemon run start时,nodemon会把run识别为待加载的入口模块,到项目根目录查找同名文件——项目内不存在这个文件,自然触发MODULE_NOT_FOUND异常,导致服务崩溃。 - 常见语法误区:
run start是npm、yarn这类包管理器的专属脚本调用语法,nodemon本身没有自动解析package.json中scripts配置、跳转执行对应脚本的内置能力,无法识别你想要运行start脚本的意图。
对应解决方案
根据实际启动需求,选择以下任意一种正确命令即可:
- 复用package.json内已配置的启动逻辑:直接执行
npm start。该命令会自动读取package.json中scripts.start的配置,等价于配置内定义的nodemon app.js启动流程,不需要手动拼接多余参数。 - 直接通过nodemon启动服务,不经过npm脚本流程:在项目根目录执行
nodemon app.js,明确指定项目入口文件为app.js即可。
后续注意事项
当前提供的app.js代码中,残留了编辑占位文本enter code here,且缺少服务端口监听的逻辑;待启动命令修正后,还需要补充app.listen(指定端口, () => { console.log("服务启动成功") })的代码,否则服务启动后无法正常响应请求。
内容的提问来源于stack exchange,提问作者Malay
相关产品推荐
相关产品推荐

