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

使用TypeScript与nodemon时import语句语法错误的解决办法问询

解决Node.js中TypeScript import语句的语法错误问题

这个错误的核心原因是:Node.js默认会把.ts文件当作普通JavaScript文件处理,但它本身并不支持TypeScript的import语法(除非你配置了ES模块模式,但那需要额外调整)。直接用nodemon运行.ts文件时,Node.js无法识别ES模块的import语句,所以抛出了SyntaxError。

要保留import语句的使用方式,你需要让nodemon配合ts-node来实时编译并执行TypeScript代码,具体步骤如下:

1. 安装必要的开发依赖

首先需要安装ts-node(用来在Node.js环境中直接运行TypeScript)、typescript以及相关的类型定义:

npm install --save-dev ts-node typescript @types/node @types/json-server

2. 修改package.json中的scripts配置

把你的serve-fake-api命令更新为使用ts-node来执行server.ts,同时保留nodemon的监听功能:

"scripts": {
  "serve-fake-api": "nodemon --exec ts-node fake-api/server.ts --watch fake-api/",
  "serve-vue": "vue-cli-service serve",
  "serve": "concurrently -k \"npm run serve-fake-api\" \"npm run serve-vue\"",
  "build": "vue-cli-service build",
  "lint": "vue-cli-service lint"
}

这里--exec ts-node告诉nodemon每次重启时用ts-node来编译并执行TypeScript文件,而不是直接用Node.js运行。

3. 配置tsconfig.json(如果还没有的话)

在项目根目录创建一个tsconfig.json文件,确保TypeScript的编译配置适配Node.js环境:

{
  "compilerOptions": {
    "target": "ES2020", // 适配你使用的Node.js版本
    "module": "CommonJS", // Node.js默认使用CommonJS模块系统
    "outDir": "./dist", // 编译后的JS文件输出目录(可选)
    "rootDir": "./fake-api", // TypeScript源码目录
    "strict": true, // 启用严格类型检查(推荐)
    "esModuleInterop": true, // 让CommonJS模块可以被ES模块的import语法导入
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["fake-api/**/*"] // 指定要编译的TS文件范围
}

为什么这样能解决问题?

ts-node会在运行时将TypeScript代码实时编译为Node.js能识别的JavaScript,这样你的import语句会被转换为Node.js支持的模块导入方式(比如require,如果配置的是CommonJS模块系统),同时nodemon负责监听fake-api目录下的文件变化,一旦文件修改就重启服务,完美适配你的开发需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:31:19