9

使用带有 typescript 插件的 Atom 编辑器出现以下错误:

错误 TypeScript 编译上下文中不包含文件“D:/foo/app/classes/event.class.ts”。如果这不是故意的,请检查 tsconfig.json file.at line 1 col 1 的“files”或“filesGlob”部分

我的 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;
    }
}
4

3 回答 3

9
于 2016-07-03T15:14:21.867 回答
8

就我而言,解决方案有所不同:

  1. 确保项目中的所有文件都编写好所有导入。(区分大小写)
  2. 保存所有文件。关闭原子。重启你的电脑。(不必要)
  3. 再次打开 Atom。完毕。:)

如果此错误发生其他问题,我会更新。

于 2016-08-09T21:15:31.510 回答
3

刚刚遇到了这个问题atom,在我的情况下,隐藏目录中的 ts 文件没有被编译。显式添加路径tsconfig.json解决了问题:

"filesGlob": [
  "**/*.ts",
  ".serverless_plugins/**/*.ts",
  "!node_modules/**"
],
于 2016-12-28T01:27:02.803 回答