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

package.json设type:module后ts-node无法运行,求解决方法

解决ES模块模式下ts-node运行.ts文件报错问题

问题原因

当package.json中设置"type": "module"启用ES模块后,Node.js默认会以ES模块规则处理文件,但ts-node需要额外配置才能正确解析.ts格式的ES模块文件,否则会触发文件扩展名识别错误。

解决步骤

1. 安装本地依赖

由于未全局安装typescript和ts-node,先在项目本地安装所需依赖:

npm install --save-dev typescript ts-node @types/node
  • typescript是ts-node的核心依赖,必须本地安装才能让ts-node正常工作
  • @types/node用于提供Node.js API的类型提示(可选但推荐)

2. 添加tsconfig.json配置文件

在项目根目录创建tsconfig.json,配置ES模块相关参数:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "moduleResolution": "Node16",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "strict": false
  },
  "include": ["test.ts"]
}
  • module: "ESNext"指定编译后的模块格式为ES模块
  • moduleResolution: "Node16"让TypeScript按照Node.js 16+的ES模块解析规则处理文件

3. 修改运行命令

运行ts-node时需要显式启用ES模块支持,使用--esm参数:

npx ts-node --esm ./test.ts

或者在package.json中添加脚本命令,方便后续运行:

{
  "type": "module",
  "scripts": {
    "start": "ts-node --esm ./test.ts"
  },
  "devDependencies": {
    "@types/node": "^20.0.0",
    "ts-node": "^10.9.0",
    "typescript": "^5.0.0"
  }
}

之后直接执行npm start即可运行test.ts。

内容的提问来源于stack exchange,提问作者Islam Y-

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:02:52