Node.js运行报Error: Cannot find module './utils/logger'错误解决方案求助
Node.js Sequelize 缺失./utils/logger模块报错解决方案
问题根因
该报错属于sequelize包内部依赖文件丢失,通常由node_modules安装时文件损坏、包管理器缓存污染、锁文件版本冲突、OneDrive同步误删依赖文件等情况导致,仅单独重装sequelize无法解决缓存/锁文件带来的版本冲突问题。
修复步骤
- 关闭当前运行的所有Node.js进程,包括nodemon监听进程
- 删除项目根目录下的
node_modules文件夹:- Windows系统可执行命令:
rmdir /s /q node_modules - Mac/Linux系统可执行命令:
rm -rf node_modules
- Windows系统可执行命令:
- 删除项目根目录下的包锁文件:
package-lock.json(npm用户)、yarn.lock(yarn用户)、pnpm-lock.yaml(pnpm用户) - 清除包管理器全局缓存:
- npm用户执行:
npm cache clean --force - yarn用户执行:
yarn cache clean - pnpm用户执行:
pnpm store prune
- npm用户执行:
- 确认package.json中sequelize版本为稳定LTS版,推荐使用v6系列正式版,避免使用测试版/alpha版,参考配置:
"sequelize": "^6.32.1" - 执行全量依赖安装命令:
- npm用户:
npm install - yarn用户:
yarn install - pnpm用户:
pnpm install
- npm用户:
- 重新启动项目验证,报错即可消失
永久避坑提示
- 不要手动修改
node_modules目录下的任意文件,避免破坏内部依赖路径 - 建议将项目存放路径设置为纯英文无特殊字符格式,避免中文、空格、特殊符号导致的路径解析异常
- 若项目存放在OneDrive等同步目录下,可将node_modules文件夹加入同步忽略列表,避免同步过程中误删小体积依赖文件
- 卸载全局安装的sequelize、sequelize-cli,仅保留项目本地安装的版本,避免全局版本与项目版本冲突
内容的提问来源于stack exchange,提问作者Harsandeep Singh
相关产品推荐
相关产品推荐

