网站搜索

node.js - 无法运行我的 nodejs 和 typescript 项目,并且我收到“ .ts 作为未知文件扩展名”的错误


我现在收到这个错误:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

这是在将 "type": "module" 添加到 package.json 后发生的

package.json

{
  "name": "Test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "watch": "tsc -w",
    "dev": "tsc && concurrently \"tsc -w\" \"nodemon\""
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "typeorm": "^0.2.31"
  },
  "devDependencies": {
    "@types/node": "^14.14.25",
    "ts-node": "^9.1.1",
    "typescript": "^4.1.4"
  },
  "type": "module"
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "lib": [
      "dom",
      "es6",
      "es2017",
      "esnext.asynciterable"
    ],
    "sourceMap": true,
    "outDir": "./dist",
    "moduleResolution": "node",
    "removeComments": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "baseUrl": "."
  },
  "exclude": [
    "node_modules"
  ],
  "include": [
    "./src/**/*.tsx",
    "./src/**/*.ts"
  ]
}

我运行的版本是 nodejs - v14.16.0 和 typescript - v4.1.4

答案#1

据我所知,allowSyntheticDefaultImports 和 esModuleInterop 是互斥的。不过不知道这是否是真正的问题。此外,我会移除 include 和 exclude 块,在这种情况下,我认为它们没有起作用。

并仔细检查你是否在 dist 文件夹中引入了该模块。