You need to enable JavaScript to run this app. React项目将load_routes.js改为.ts后触发Cannot find module错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

React项目将load_routes.js改为.ts后触发Cannot find module错误如何解决

问题原因

原生Node.js运行时默认仅支持加载 .js、.json、.node 后缀的模块,无法直接识别解析 .ts 后缀的TypeScript文件。你直接用node命令执行.ts文件时,Node会按照默认支持的后缀规则查找文件,找不到匹配的模块就会抛出该报错,和文件实际是否存在无关。

解决思路

你可以根据使用场景选择以下任意一种方案:

  • 方案1:开发场景用ts-node直接运行TS文件

    1. 安装必要开发依赖:
    npm install -D ts-node typescript @types/node
    
    1. 确认项目根目录存在tsconfig.json配置文件,且include字段包含了node_express目录下的TS文件
    2. 修改package.json中的server脚本,将执行命令从node替换为ts-node:
    "server": "NODE_ENV=localhost PORT=**** ts-node --max-http-header-size 81000 ./node_express/load_routes.ts"
    
  • 方案2:生产场景先编译TS为JS再执行

    1. 确保项目已安装typescript依赖,且tsconfig.json配置正确
    2. 新增TS编译脚本,再修改server脚本先执行编译、再运行生成的JS文件,示例配置:
    "scripts": {
      "build:server": "tsc",
      "server": "npm run build:server && NODE_ENV=localhost PORT=**** node --max-http-header-size 81000 ./node_express/load_routes.js"
    }
    

    注意要将tsconfig.json中的outDir配置为你期望的编译产物输出目录,同时对应修改server脚本中JS文件的路径。

  • 方案3:用tsx零配置运行TS文件
    如果你不想额外配置tsconfig相关规则,可以选择更轻量的tsx运行时:

    1. 安装开发依赖:
    npm install -D tsx
    
    1. 修改server脚本,将node替换为tsx即可:
    "server": "NODE_ENV=localhost PORT=**** tsx --max-http-header-size 81000 ./node_express/load_routes.ts"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:48:00