我正在使用WebStorm 2016.1.3进行带有打字稿的Angular 2项目。当我在WebStorm中启用ts编译器并修改ts文件(然后应该编译)时,我收到以下警告:BorderPane
并且文件未编译。
我的项目文件/文件夹结构接近Angular 2推荐的样式指南:
我的Warning:File was not compiled because there is no a reference from tsconfig.json
个文件都在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"
]
}
中的ts
文件除了WebStorm中的所有其他文件之外,打开并修改了script
个文件会导致上面的警告而不进行编译。在WebStorm的打字稿控制台中,编译器说它正在编译修改后的文件(即更改检测似乎正在工作),但它不会发出转换文件。但是,当WebStorm启动时,所有子文件夹中的所有ts
文件都已正确编译。此外,如果我手动或通过gulp使用tsc我没有问题,所有内容都应该编译,这告诉我我的ts
没问题。
我尝试在WebStorm的typescript编译器选项中指定我自己的范围。没有区别。 tsconfig
选项已启用。我在有Track changes
选项的情况下尝试了它。没有区别。
我无法理解这件事。 有没有其他人遇到过 - 并希望修复 - 这个问题?
答案 0 :(得分:1)
如果其他人遇到此问题:
我想我找到了导致这个问题的原因。我的一些文件有一些不寻常的拼写(在打字稿世界中)。例如,我的一项服务拼写为“ApiService.ts”。在我将其更改为“apiService.ts”后,问题就消失了。另一个拼写为“hhPager.component.ts”。 WebStorm也不喜欢这样。我现在将其更改为“pager.component.ts”,WebStorm放松并表现得很好。
我已经把它带到了JetBrain的注意力,这是目前(2016年7月8日)他们的问题跟踪器(https://youtrack.jetbrains.com/issue/WEB-22290)中的一个错误。
答案 1 :(得分:0)
尝试在tsconfig.json中添加以下块
"files": [
"typings/tsd.d.ts",
"main.ts"
]
看看这是否有帮助。