文件不包含在 TypeScript 编译上下文中
File is not included in the TypeScript compilation context
使用带有打字稿插件的 Atom 编辑器时出现以下错误:
Error The file "D:/foo/app/classes/event.class.ts" is not included in
the TypeScript compilation context. If this is not intended, please
check the "files" or "filesGlob" section of your tsconfig.json file.at
line 1 col 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 数组中构建一个 "files" 数组。就像另一个线程中的人一样,这没有帮助。请注意,该线程谈论了很多关于测试的内容......这不适用于我。
我也尝试通过这个线程进行解析:https://github.com/TypeStrong/atom-typescript/issues/558 然而,这基本上最终成为关于纯洁与实用主义的争论。我确实发现,如果缺少文件和 filesGlob 数组,则会使用隐式 "everything" 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;
}
}
对于我的具体问题,我将 "**/*.ts"
包含在 “filesGlob” 属性 中tsconfig.json来解决。整个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
}
}
对于我的情况,解决方案不同:
- 确保您项目中的所有文件都正确编写了所有导入。 (区分大小写)
- 保存所有文件。关闭原子。
重新启动计算机。(不需要)
- 再次打开 Atom。完毕。 :)
如果此错误出现其他问题,我会进行更新。
只是 运行 进入 atom
这个问题,在我的例子中,隐藏目录中的 ts 文件没有被编译。在 tsconfig.json
中显式添加路径解决了问题:
"filesGlob": [
"**/*.ts",
".serverless_plugins/**/*.ts",
"!node_modules/**"
],
使用带有打字稿插件的 Atom 编辑器时出现以下错误:
Error The file "D:/foo/app/classes/event.class.ts" is not included in the TypeScript compilation context. If this is not intended, please check the "files" or "filesGlob" section of your tsconfig.json file.at line 1 col 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 数组中构建一个 "files" 数组。就像另一个线程中的人一样,这没有帮助。请注意,该线程谈论了很多关于测试的内容......这不适用于我。
我也尝试通过这个线程进行解析:https://github.com/TypeStrong/atom-typescript/issues/558 然而,这基本上最终成为关于纯洁与实用主义的争论。我确实发现,如果缺少文件和 filesGlob 数组,则会使用隐式 "everything" 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;
}
}
对于我的具体问题,我将 "**/*.ts"
包含在 “filesGlob” 属性 中tsconfig.json来解决。整个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
}
}
对于我的情况,解决方案不同:
- 确保您项目中的所有文件都正确编写了所有导入。 (区分大小写)
- 保存所有文件。关闭原子。
重新启动计算机。(不需要) - 再次打开 Atom。完毕。 :)
如果此错误出现其他问题,我会进行更新。
只是 运行 进入 atom
这个问题,在我的例子中,隐藏目录中的 ts 文件没有被编译。在 tsconfig.json
中显式添加路径解决了问题:
"filesGlob": [
"**/*.ts",
".serverless_plugins/**/*.ts",
"!node_modules/**"
],