ts-node-esm 报错 ERR_UNKNOWN_FILE_EXTENSION

发生背景

书接上回,在 CommonJS 中使用 ES Module 语法,ts-node 会报错 ERR_UNKNOWN_FILE_EXTENSION

时隔 9 个月,报错再次发生:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for ...\scripts\upload.ts
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:160:9)
    at defaultGetFormat (node:internal/modules/esm/get_format:203:36)
    at defaultLoad (node:internal/modules/esm/load:141:22)
    at async nextLoad (node:internal/modules/esm/hooks:865:22)
    at async nextLoad (node:internal/modules/esm/hooks:865:22)
    at async Hooks.load (node:internal/modules/esm/hooks:448:20)
    at async MessagePort.handleMessage (node:internal/modules/esm/worker:196:18) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

相较于上次,这次的工具更新些:

  • Node.js 20.10.0
  • ts-node 10.9.2
  • TypeScript 5.3.3

再三确认:

  • 要运行的文件 scripts/upload.ts 存在
  • package.json 里有写 "type": "module"
  • package.json 里有写 "ts-node": { "esm": true }(换用 ts-node-esm 也会报错)

搞了一个星期

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值