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

使用ts-node运行相对路径文件时出现Cannot Find Module错误

使用ts-node运行相对路径文件时出现Cannot Find Module错误

看起来你在运行TypeScript脚本时碰到了模块找不到的问题,这种路径别名导致的解析错误确实挺让人头疼的。先看看你遇到的具体错误:

Error: Cannot find module '@/../prisma/seedFiles/oneTimeScripts/update-resources/utils/utils'
Require stack:

  • /Users/braidenparkinson/Development/backend/prisma/seedFiles/oneTimeScripts/update-cost-center/updateCostCenter.ts
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1143:15)

下面给你几个可行的解决思路:

  • 检查并配置tsconfig.json的路径映射
    你用到的@/是自定义路径别名,这个需要在tsconfig.json的compilerOptions里配置baseUrl和paths才能让TypeScript识别。比如你的项目结构里,@对应的根目录如果是项目根目录,配置应该类似这样:

    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@/*": ["*"]
        }
      }
    }
    

    如果@原本指向src文件夹,那@/../prisma其实是从src往上跳一级到项目根目录再找prisma,这时候要确保baseUrl和paths的配置和实际目录结构完全匹配。

  • 让ts-node支持路径别名
    即使tsconfig里配置了路径,ts-node默认可能不会自动加载这些映射规则。你可以安装tsconfig-paths包来解决:

    npm install -D tsconfig-paths
    

    然后用以下命令运行脚本:

    npx ts-node -r tsconfig-paths/register updateCostCenters.ts
    

    -r tsconfig-paths/register会让ts-node启动时加载路径配置,这样就能正确解析@/开头的别名了。

  • 改用相对路径替代别名
    要是不想折腾配置,最简单的方法就是把导入语句里的别名换成相对当前脚本的路径。你的updateCostCenter.ts在update-cost-center文件夹下,要导入的utils.ts在同级的update-resources/utils里,所以相对路径应该是:

    import { ... } from '../update-resources/utils/utils';
    

    这样ts-node就能直接找到对应的模块文件了。

  • 检查路径大小写
    别小看这个细节!如果你的系统是MacOS或者Windows,文件系统可能大小写不敏感,但Node.js的模块解析是严格区分大小写的。确认你导入路径里的文件夹和文件名大小写和实际文件完全一致,比如update-resources别写成Update-Resources。

备注:内容来源于stack exchange,提问作者codernoob8

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:42:56