错误:将 Express 和 TypeScript 与 Nodemon 一起使用时,文件扩展名“.ts”未知

Error: Unknown file extension ".ts" when using Express and TypeScript with Nodemon

提问人:JDorozco 提问时间:10/25/2023 最后编辑:JDorozco 更新时间:10/25/2023 访问量:93

问:

我在尝试使用 Express 和 TypeScript 与 Nodemon 启动项目时遇到了问题。当我运行 Nodemon 时,我收到以下错误:

[nodemon] 3.0.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): src\**\*
[nodemon] watching extensions: ts,js
[nodemon] starting `ts-node ./src/index.ts`
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for C:\Users\jdoro\Programacion\GitHub\my-react-projects\eventify-io\backend\src\index.ts
    at new NodeError (node:internal/errors:393:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:75:9)
    at defaultGetFormat (node:internal/modules/esm/get_format:114:38)
    at defaultLoad (node:internal/modules/esm/load:81:20)
    at nextLoad (node:internal/modules/esm/loader:161:28)
    at ESMLoader.load (node:internal/modules/esm/loader:594:26)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:446:22)
    at new ModuleJob (node:internal/modules/esm/module_job:64:26)
    at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:469:17)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:423:34) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
[nodemon] app crashed - waiting for file changes before starting...

这是我的 Nodemon 配置:

{
  "ignore": [
    ".git",
    "node_modules"
  ],
  "watch": [
    "src"
  ],
  "exec": "ts-node ./src/index.ts",
  "ext": ".ts,.js"
}

似乎Nodemon在识别.ts文件扩展名时遇到了问题。以前有没有人遇到过这个问题,有没有解决方案可以让 Nodemon 在此设置中使用 TypeScript 文件?

谢谢你的帮助!

我尝试配置 Nodemon 来监视 TypeScript (.ts) 文件

我原以为 Nodemon 会在对“src”目录中的 TypeScript 文件 (.ts) 进行更改时成功监视并重新启动,并使用 ts-node 执行 ./src/index.ts 中的 TypeScript 代码。

但是,似乎 Nodemon 抛出一条错误消息:“C:\Users\jdoro\Programacion\GitHub\my-react-projects\eventify-io\backend\src\index.ts 的未知文件扩展名”.ts”。这表明 Nodemon 未将 TypeScript 文件 (.ts) 识别为用于监视和重新启动的有效扩展名。

我正在寻求有关如何配置 Nodemon 以在此 Express 和 TypeScript 项目中使用 TypeScript 文件的指导。任何帮助或见解将不胜感激。

(编辑)

我还尝试运行以下命令:

"dev": "nodemon --exec node --loader ts-node/esm src/index.ts",

但它导致了以下错误:

    > nodemon --exec node --loader ts-node/esm src/index.ts

[nodemon] 3.0.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: ts,json
[nodemon] starting `node --loader ts-node/esm src/index.ts`
(node:17548) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
ReferenceError: exports is not defined in ES module scope
    at file:///C:/Users/jdoro/Programacion/GitHub/my-react-projects/eventify-io/backend/src/index.ts:5:23
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)
[nodemon] app crashed - waiting for file changes before starting...

ESM(ECMAScript 模块)和 Nodemon 的配置似乎存在问题。以前有没有人遇到过这个特殊的错误,有没有解决方案可以让 Nodemon 在此设置中处理 TypeScript 文件?

TypeScript Express 错误处理 Nodemon 文件扩展名

评论

0赞 Dimava 10/25/2023
尝试 github.com/esbuild-kit/tsx 运行器而不是 nodemon + ts-node。在 80% 的情况下,它修复了 ts 节点错误。

答: 暂无答案