【发布时间】:2016-11-04 19:03:42
【问题描述】:
我正在将 WebStorm 2016.1.3 用于带有 typescript 的 Angular 2 项目。当我在 WebStorm 中启用 ts 编译器并修改 ts 文件(然后应该对其进行编译)时,我收到以下警告:Warning:File was not compiled because there is no a reference from tsconfig.json 并且该文件未编译。
我的项目文件/文件夹结构接近 Angular 2 推荐的样式指南:
我所有的ts 文件都在script 文件夹中。根应用程序位于该文件夹中,每个组件都有自己的子文件夹,其中包含一个 ts 和一个 html 文件。共享服务等位于Shared 子文件夹中。
我的tsconfig 看起来像这样,在项目根文件夹(script 文件夹的父文件夹)中:
{
"compilerOptions": {
"outDir": "wwwroot/app",
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"inlineSourceMap": true,
"inlineSources": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"wwwroot"
]
}
除了直接在script 中的ts 文件之外,WebStorm 中所有其他打开和修改的ts 文件都会导致上述警告并且不会编译。在 WebStorm 的打字稿控制台中,编译器说它正在编译修改后的文件(即更改检测似乎正在工作),但它不会发出转译文件。但是,当 WebStorm 启动时,所有子文件夹中的所有 ts 文件都会被正确编译。此外,如果我手动使用 tsc 或通过 gulp 使用,我不会遇到任何问题,并且一切都会按预期编译,这告诉我我的 tsconfig 没问题。
我尝试在 WebStorm 的 typescript 编译器选项中指定我自己的范围。没有区别。 Track changes 选项已打开。我在有和没有Resolve objects using tsconfig.json 选项的情况下都试过了。没有区别。
我无法弄清楚这件事。 有没有其他人遇到过(希望已解决)这个问题?
【问题讨论】:
-
您使用的是哪个“范围”?应该是默认值“项目文件”
-
是的,我一开始就是这样,因为它是默认设置。这就是问题最初出现的时候。我改变了范围,看看它是否有所作为。它没有。
标签: typescript angular webstorm