使用带有打字稿插件的Atom编辑器我收到以下错误:
错误文件" D:/foo/app/classes/event.class.ts"不包括在内 TypeScript编译上下文。如果不是这样,请 检查"文件"或" filesGlob" tsconfig.json file.at的一部分 第1行第1行
我的tsconfig.json文件的内容是:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
我看过其他一些有这个问题的人。这个:https://github.com/lathonez/clicker/issues/4让我尝试构建一个"文件" tsconfig.json数组中的数组。这与其他线程中的人非常相似,没有帮助。请注意,该线程谈了很多关于测试的内容......这对我来说并不适用。
我也试过解析这个帖子:https://github.com/TypeStrong/atom-typescript/issues/558然而这基本上最终成为关于纯度与实用主义的争论。我确实认为如果文件和filesGlob数组丢失了,那就是隐含的"所有内容"使用了glob。如果是这种情况,为什么我收到错误,因为我没有文件和filesGlob条目。
顺便说一句,命令行TSC正在生成已编译的js和映射文件。 ...但我仍然需要看到Atom中的大红色错误。
对于它的价值,event.class.ts文件看起来像这样(我不希望这是问题的根源,但我认为它包含它是为了完整性) :
import {Utilities} from '../utilities';
export class Event {
eventData:JSON;
eventID:string;
constructor(_eventData:JSON, _eventID?:string) {
if(_eventID==null) {
_eventID=Utilities.newGuidPlus();
}
this.eventID = _eventID;
this.eventData = _eventData;
}
getEventData():JSON { // returns the full event
return this.eventData;
}
getEventID():string {
return this.eventID;
}
}
答案 0 :(得分:9)
对于我的确切问题,我在 tsconfig.json 中的 “filesGlob” 属性中添加了"**/*.ts"
来解决。整个tsconfig.json看起来像这样。
{
"compileOnSave": false,
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"mapRoot": "/",
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../dist/",
"rootDir": ".",
"sourceMap": true,
"target": "es5",
"inlineSources": true
},
"filesGlob": [
"**/*.ts"
],
"atom": {
"rewriteTsconfig": false
}
}
答案 1 :(得分:7)
就我而言,解决方案有所不同:
如果此bug出现其他问题,我会更新。
答案 2 :(得分:3)
刚刚遇到atom
这个问题,在我的情况下,隐藏目录中的ts文件没有被编译。在tsconfig.json
中明确添加路径解决了问题:
"filesGlob": [
"**/*.ts",
".serverless_plugins/**/*.ts",
"!node_modules/**"
],