【问题标题】:WebStorm "Warning:File was not compiled because there is no a reference from tsconfig.json"WebStorm“警告:文件未编译,因为没有来自 tsconfig.json 的引用”
【发布时间】: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


【解决方案1】:

如果其他人遇到这个问题:

我想我已经找到了导致问题的原因。我的一些文件有一些不寻常的拼写(在打字稿世界中)。例如,我的一项服务拼写为“ApiService.ts”。在我将其更改为“apiService.ts”后,问题就消失了。另一个拼写为“hhPager.component.ts”。 WebStorm 也不喜欢那样。我现在将其更改为“pager.component.ts”,WebStorm 放松并表现得很好。

我已引起 JetBrain 的注意,目前(2016 年 7 月 8 日)这是他们的问题跟踪器 (https://youtrack.jetbrains.com/issue/WEB-22290) 中的一个错误。

【讨论】:

  • 谢谢!我不得不将 attach-magnify.ts 重命名为 attachMagnify.ts,现在 intellij 可以编译了。感谢您让 JetBrains 意识到这个问题 :)
  • 只是一个观察,如果apiService.ts 有效并且pager.component.ts 有效,为什么hhPager.component.ts 无效?这表明apiService.component.ts 不起作用......两个“h”不是错字......我遇到了这个错误,上述解决方案没有帮助。
【解决方案2】:

尝试在 tsconfig.json 中添加以下块

  "files": [
    "typings/tsd.d.ts",
    "main.ts"
  ]

看看这是否有帮助。

【讨论】:

  • 添加此块会导致编译错误。我没有打字/tsd.d.ts。我的是 typings/index.d.ts,我使用了它。
  • Webstorm 没有解析链接到文件中的文件,tsc 可以
猜你喜欢
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
相关资源
最近更新 更多