【问题标题】:Unknown compiler options include & exclude未知的编译器选项包括和排除
【发布时间】:2019-11-19 19:44:10
【问题描述】:

我正在制作我的第一个 typescript-node-express 应用程序。

首先,我创建了自己的 tsconfig 文件,看起来像

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs", 
    "strict": true,
    "baseUrl": "./",
    "outDir": "./build",
    "sourceMap": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "importHelpers": true,
    "types": [
      "node"
    ],
    "typeRoots": [
        "node_modules/@types"
    ],
    "include": [
      "src/**/*.ts"
    ],
    "exclude": [
      "node_modues"
    ]
  }
}

在我的 src/app.ts 中,我正在初始化我的 express 应用

import * as express from "express";

class App {

  constructor() {
    this.app = express();
  }

  //TODO: What is public app: express.Application
  public app: express.Application;

}

const app = new App().app;
const port = 4040;

app.listen(port, function() {
  console.log('Express server listening on port ' + port);
});

现在,当我执行 ts-node ./src/app.ts 时,出现以下错误

错误 TS5023:未知的编译器选项“包含”。

错误 TS5023:未知编译器选项“排除”。

at createTSError (/Users/an/.nvm/versions/node/v10.15.3/lib/node_modules/ts-node/src/index.ts:245:12)
at reportTSError (/Users/an/.nvm/versions/node/v10.15.3/lib/node_modules/ts-node/src/index.ts:249:19)
at Object.register (/Users/an/.nvm/versions/node/v10.15.3/lib/node_modules/ts-node/src/index.ts:260:36)
at Object.<anonymous> (/Users/an/.nvm/versions/node/v10.15.3/lib/node_modules/ts-node/src/bin.ts:120:17)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)Unknown compiler

谁能帮我弄清楚为什么会出现这个错误?

【问题讨论】:

    标签: javascript node.js typescript


    【解决方案1】:

    根据the handbookincludeexclude 应该是compilerOptions 的兄弟姐妹,而不是孩子:

    {
      "compilerOptions": {
        "target": "es6",
        "module": "commonjs", 
        "strict": true,
        "baseUrl": "./",
        "outDir": "./build",
        "sourceMap": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "importHelpers": true,
        "types": [
          "node"
        ],
        "typeRoots": [
            "node_modules/@types"
        ]
      },
      "include": [
        "src/**/*.ts"
      ],
      "exclude": [
        "node_modues"
      ]
    }
    

    【讨论】:

      【解决方案2】:

      问题在于它们根本不属于编译器选项。

      它们应该与编译器选项一起存在,如下所示:

      {
        "compilerOptions": {
          "target": "es6",
          "module": "commonjs", 
          "strict": true,
          "baseUrl": "./",
          "outDir": "./build",
          "sourceMap": true,
          "experimentalDecorators": true,
          "emitDecoratorMetadata": true,
          "importHelpers": true,
          "types": [
            "node"
          ],
          "typeRoots": [
              "node_modules/@types"
          ]
        },
        "include": [
          "src/**/*.ts"
        ],
        "exclude": [
          "node_modues"
        ]
      }
      

      在此处查看示例:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#examples

      【讨论】:

        【解决方案3】:

        如果您在 100% 验证您的 excludeinclude 选项不在 compilerOptions 范围内后仍然收到此错误,您可能忘记检查 tsconfig.json 和 @987654326 @ 继承自前者。

        值得花一些时间查看official docs

        【讨论】:

          猜你喜欢
          • 2021-12-29
          • 2018-05-27
          • 2021-07-14
          • 2019-10-07
          • 1970-01-01
          • 1970-01-01
          • 2017-03-17
          • 2021-06-09
          • 2018-07-25
          相关资源
          最近更新 更多