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

使用ExpressJS+TypeScript搭建后端遇模块找不到错误求助

问题描述

用ExpressJS + TypeScript搭建后端时,运行命令 nodemon --exec node --loader ts-node/esm src/index.ts 弹出「Cannot find module...」错误。相关代码与配置如下:

  • app.ts 导出代码:
const app = express();
app.use(cors());
app.use(express.json());
export default app;
  • index.ts 导入代码:
import app from './app';
// ...其他代码
  • package.json 已配置 "type": "module"
  • tsconfig.json 内容:
{
  "compilerOptions": {
    "target": "ESNext",  
    "module": "ESNext",                                
    "rootDir": "./src/",                                  
    "moduleResolution": "node"
  },
  "include": [
    "src/**/*.ts"
  ]
}

解决步骤

1. 补全导入路径的扩展名

ES模块(ESM)要求导入文件必须带完整扩展名,修改index.ts里的导入语句:

import app from './app.ts';

2. 修复tsconfig.json的语法错误

你提供的tsconfig多了一层冗余大括号,正确写法如下(额外添加了常用的互操作配置):

{
  "compilerOptions": {
    "target": "ESNext",  
    "module": "ESNext",                                
    "rootDir": "./src/",                                  
    "moduleResolution": "node",
    "esModuleInterop": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules"]
}

3. 适配依赖版本

安装最新版的ts-node、@types/node和typescript,避免版本兼容问题:

npm install -D ts-node@latest @types/node@latest typescript@latest

4. 优化nodemon命令(可选)

在package.json的scripts里配置快捷命令,方便运行:

"scripts": {
  "dev": "nodemon --watch src --exec ts-node-esm src/index.ts"
}

之后直接运行 npm run dev 即可启动服务。

5. 核对文件结构

确认src目录下确实存在app.ts和index.ts,路径拼写无错误(注意Linux/macOS系统区分文件名大小写)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:03:13