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

使用ts-node-dev运行TypeScript+Express项目时报错找不到模块'src/app'

问题根因

你当前的报错是因为ts-node-dev(缩写tsnd)未处理tsconfig.json中配置的baseUrl导致的路径解析异常:

  • 你在代码中使用了非相对路径导入src/app(比如写法为import app from 'src/app'),依赖tsconfig.json中的baseUrl: "./"配置做路径解析
  • Jest运行正常是因为你在jest.config.js中配置了moduleDirectories: ['node_modules', './'],Jest会主动从项目根目录检索模块,能正确解析路径
  • ts-node-dev默认不会读取tsconfig的baseUrl配置做模块解析,因此启动时无法找到对应模块
解决方案

提供两种常用方案,可根据项目情况选择:

方案一:使用tsconfig-paths处理路径别名(推荐,适配大项目多路径别名的场景)

  1. 安装开发依赖
npm i -D tsconfig-paths
  1. 修改package.json中的scripts配置,给tsnd命令添加注册tsconfig-paths的参数:
{
  "scripts": {
    "start": "tsnd --require tsconfig-paths/register src/server.ts",
    "debug": "tsnd --require tsconfig-paths/register --inspect=0.0.0.0:7001 --exit-child --respawn src/server.ts"
  }
}
  1. 若编译打包后直接运行dist目录的产物也出现同类报错,可以选择两种处理方式:
    • 运行时加载tsconfig-paths:node -r tsconfig-paths/register dist/server.js
    • 编译时替换别名:安装tsc-alias依赖,在build脚本中追加&& tsc-alias,编译时自动把所有别名路径替换为相对路径

方案二:修改为相对路径导入(适合小项目,无需额外依赖)

直接把src/server.ts中导入app的写法修改为相对路径即可:

// 把原非相对路径的导入写法
// import app from 'src/app'
// 修改为相对路径写法
import app from './app'

修改完成后重新执行npm start即可正常启动项目。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:03