未知的编译器选项包括和排除
Posted
技术标签:
【中文标题】未知的编译器选项包括和排除【英文标题】: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
谁能帮我弄清楚为什么会出现这个错误?
【问题讨论】:
【参考方案1】:根据the handbook,include
和exclude
应该是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% 验证您的 exclude
或 include
选项不在 compilerOptions
范围内后仍然收到此错误,您可能忘记检查 tsconfig.json
和 @987654326 @ 继承自前者。
值得花一些时间查看official docs。
【讨论】:
以上是关于未知的编译器选项包括和排除的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 提前编译中的未知编译器选项“angularCompilerOptions”
无法在 macOS“Big Sur”和 python 3.8 中编译 pip 包:“ld:未知选项:-Bsymbolic”
未知编译器选项“文件”正在启动 ./node_modules/.bin/ng-xi18n
编译 alamofire 的错误 - 未知选项字符“X”在:-Xlinker