【问题标题】:NodeJs typescript and module issuesNodeJs 打字稿和模块问题
【发布时间】:2020-09-25 22:44:18
【问题描述】:

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

TypeError [ERR_UNKNOWN_FILE_EXTENSION]:未知文件扩展名为“.ts”

我的 package.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

请帮忙。

【问题讨论】:

  • 需要编译成js,或者使用ts-node

标签: node.js angular typescript


【解决方案1】:

你需要在使用 node 运行之前编译,或者使用 ts-node 来运行你的 typescript。此外,这可能是您的 tsconfig 和导入引起的问题。

【讨论】:

    【解决方案2】:

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

    1. 将您的 main 更改为 ts-node(根据不同答案的建议)或将您的 package.json 中的 main 字段更改为 <buildFolder (normally diet)>/server.js 以引用构建文件而不是 typescript 文件。
    2. module 字段 tsconfig.json 更改为 CommonJS 以避免构建 ES6 模块(这是一个问题,尤其是使用 webpack 时

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2019-12-28
      • 2018-02-11
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 2019-08-24
      • 2020-02-29
      • 1970-01-01
      相关资源
      最近更新 更多