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

Node.js已安装datasource-sql仍报Cannot find module错误如何解决

问题原因

  1. 核心原因是tsconfig.json配置错误:
    配置项"baseUrl": ".."将TypeScript模块解析的根路径指定为项目根目录的上一级目录,运行时查找依赖会优先向上一级目录的node_modules搜索,无法找到当前项目下已安装的datasource-sql依赖。
  2. 运行环境问题:从报错前缀service_1可判断项目大概率在Docker Compose环境下运行,若容器构建时未正确执行依赖安装,或未将本地node_modules挂载到容器内的/code目录,也会触发该报错。
  3. 次要原因:tsconfig的include规则仅匹配了.ts/.tsx后缀文件,而引入datasource-sql的MyDatabase文件为.js后缀,编译阶段识别该文件的导入逻辑时也可能出现路径解析异常。

解决方案

  • 修正tsconfig的baseUrl配置:将"baseUrl": ".."修改为"baseUrl": ".",使模块解析根路径指向当前项目根目录,匹配node_modules的实际存放位置。
  • 补充include匹配规则:在tsconfig的include数组中添加"./src/**/*.js",确保TypeScript可正确识别.js文件的导入逻辑。
  • 若使用Docker Compose运行项目,先执行docker-compose build重新构建服务镜像,确保镜像构建流程中完整执行了npm install安装所有依赖,避免容器内部缺少依赖包。
  • 本地验证操作:在项目根目录先执行nvm use切换到指定的14.15.4版本Node,再执行node -e "require('datasource-sql')",如果没有抛出找不到模块的报错,说明本地依赖安装正常,问题完全由配置问题导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:15:05