Node.js NodeJs类型脚本和模块问题

Node.js NodeJs类型脚本和模块问题,node.js,angular,typescript,Node.js,Angular,Typescript,我有一个typescript中的测试nodeJS服务器代码。 尝试运行ts文件时出现以下错误: TypeError[错误未知文件扩展名]:未知文件扩展名“.ts” mypackage.json { "name": "server", "version": "1.0.0", "description": "server", "main": "server.ts", "type": "module", "scripts": { "test": "test server

我有一个typescript中的测试nodeJS服务器代码。 尝试运行ts文件时出现以下错误:

TypeError[错误未知文件扩展名]:未知文件扩展名“.ts”

mypackage.json

{
  "name": "server",
  "version": "1.0.0",
  "description": "server",
  "main": "server.ts",
  "type": "module",
  "scripts": {
    "test": "test server",
    "prebuild": "tslint -c tslint.json -p tsconfig.json --fix",
    "build": "tsc",
    "prestart": "npm run build",
    "start": "node .",
    "tsc": "tsc"
  },
  "author": "HL",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^14.0.6",
    "tslint": "^6.1.2",
    "typescript": "^3.9.5"
  },
  "dependencies": {
    "@types/express": "^4.17.6",
    "ejs": "^3.1.3",
    "express": "^4.17.1",
    "http": "0.0.1-security",
    "mysql": "^2.18.1",
    "util": "^0.12.3"
  }
}
注意:我需要使用type:module,因为删除它时会出现错误:

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1067:16)
    at Module._compile (internal/modules/cjs/loader.js:1115:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

请提供帮助。

您需要在使用node运行之前进行编译,或者使用ts node运行您的typescript。此外,这可能是由于您的tsconfig和imports导致的问题。

您需要在使用node运行之前进行编译,或者使用ts node运行您的typescript。此外,这可能是由于您的tsconfig和导入导致的问题。

package.json
文件中删除
“type”:“module”

希望这有帮助。

package.json
文件中删除
“type”:“module”


希望这有帮助。

这可能来自多个方面(如果我忘记了什么,请发表评论,因为这是一个有点通用的配置错误):

  • 将main更改为ts节点(根据不同答案的建议),或者将
    package.json
    中的
    main
    字段更改为
    /server.js
    ,以引用生成的文件而不是typescript文件
  • module
    字段
    tsconfig.json
    更改为
    CommonJS
    ,以避免构建ES6模块(这是一个问题,尤其是webpack

  • 这可能来自多个方面(如果我忘记了一些东西,请给出注释,因为这是一个有点通用的配置错误):

  • 将main更改为ts节点(根据不同答案的建议),或者将
    package.json
    中的
    main
    字段更改为
    /server.js
    ,以引用生成的文件而不是typescript文件
  • module
    字段
    tsconfig.json
    更改为
    CommonJS
    ,以避免构建ES6模块(这是一个问题,尤其是webpack

  • 您需要将其编译为js,或使用ts节点您需要将其编译为js,或使用ts节点但当您删除“type”:“module”时,您不能使用导入。@BrokolicovýDžuß这是正确的。
    ts节点
    似乎不适合此目的。但是当您删除“type”:“module”您不能使用导入。@BrokolicovýDžuß这是正确的。
    ts节点
    似乎不适合使用。