用ts-node命令运行typescript文件报类型错误:TypeError: Unknown file extension “.ts“

环境

我已经安装了typescript、ts-node包:
在这里插入图片描述
在这里插入图片描述

问题

项目目录下面有一个ts文件:
在这里插入图片描述

ts-node hello.ts运行,报类型错误:

TypeError: Unknown file extension ".ts" for D:\temp\前端\前端入门\ts-study\hello.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:143:22)
    at async ModuleLoader.load (node:internal/modules/esm/loader:403:7)
    at async ModuleLoader.moduleProvider (node:internal/modules/esm/loader:285:45)
    at async link (node:internal/modules/esm/module_job:78:21) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

在这里插入图片描述

原因

项目目录下面尽管没有package.json文件,但上级目录有一个package.json文件,其中包含"type": "module"
在这里插入图片描述

package.json文件的查找机制就是先使用当前目录,如果没有,再查找上一级目录,如此递推。

解决方法

方法一:将上级目录package.json文件中的"type": "module"这句话去掉。这样可能会影响上级目录下面的其它项目。(不推荐

方法二:在本项目目录下面新建一个空的package.json文件,这样影响最小(推荐)。如下:

在这里插入图片描述

现在再执行,就正确了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值