共计 888 个字符,预计需要花费 3 分钟才能阅读完成。
环境
我已经安装了 typescript、ts-node 包:
问题
项目目录下面有一个 ts 文件:
用 ts-node hello.ts
运行,报类型错误:
TypeError: Unknown file extension ".ts" for D:temp 前端前端入门 ts-studyhello.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 文件,这样影响最小( 推荐)。如下:
现在再执行,就正确了:
原文地址: 用 ts-node 命令运行 typescript 文件报类型错误:TypeError: Unknown file extension“.ts“
正文完