将“type: module”添加到 package.json 后出现未知的文件扩展名错误

Tim*_*j93 6 typescript nodemon package.json ts-node

我正在使用 TypeScript,使用现代导入语句。运行nodemon(然后使用ts-node)这显然会导致SyntaxError: Cannot use import statement outside a module. 很公平,所以我添加"type": "module"到我的package.json文件中。在不更改任何其他内容的情况下,新错误现在显示为:TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for .../file.ts。请记住,在添加之前完全相同的配置可以很好地"type":"module"运行文件。.tsNodemon 仍然正确使用 ts-node,如错误上方的行所示:[nodemon] starting ts-node src/file.ts

所以我很困惑:如果不使用"type":"module"现代进口,一切都会正常工作。添加现代进口会增加一个合理的错误。但试图解决这个问题"type":"module"会产生奇怪的行为。

我还尝试从主 .ts 文件中删除所有内容,仅添加 console.log 语句。如果没有"type":"module"在我的 package.json 文件中,这会很好地打印到日志中。立即添加"type":"module"回来会再次导致未知文件扩展名错误。

简单的说:

这工作正常:

// File.ts
console.log("test")

// package.json
{
    ...
}

// Output
test
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

// File.ts
console.log("test")

// package.json
{
    "type": "module",
    ...
}

// Output
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for .../file.ts
Run Code Online (Sandbox Code Playgroud)

我确信我做错了什么,但是这些类型的错误并不能让你自己轻易找出来。有谁知道这可能是什么原因造成的?