WebStorm 在从 TS 到 JS 时错误地将源文件标记为已排除

WebStorm incorrectly marking source files as excluded when going from TS to JS

我有一个混合了 JavaScript+Flow 和 TypeScript 的 React 项目——我正在将 JS 文件迭代重构为 TS/TSX。

在我的工作流程中,我有时会在 Git 个分支之间来回走动,在这些分支中,我可能已经将特定的 JS 文件重命名为 App.jsApp.tsx 而在另一个不相关的分支中,它仍然被称为 App.js.

我注意到,当我将 App.js 转换为 App.tsx 时,一切都很好,但是当我切换回仍将其设置为 App.js 的分支时,WebStorm无论出于何种原因,JS 文件被标记为从索引中忽略,我不知道如何将它设置回作为索引的一部分,而我在其他 git 没有重命名文件的分支中工作 -它现在永远被排除在 TSX 分支机构之外。我试过使缓存无效以强制重新编制索引,但这并没有解决问题。下面是我正在谈论的一些截图。

我希望所有这些都清楚。有人可以帮忙吗?

已知问题,与从索引 WEB-30895 中自动排除内置编译器生成的 .js 文件有关。 作为解决方法,请尝试从 .idea/workspace.xml<component name="TypeScriptGeneratedFilesManager"> 部分的 "exactExcludedFiles" 列表中删除这些 .js 文件,例如:

<component name="TypeScriptGeneratedFilesManager">
    <option name="version" value="1" />
    <option name="exactExcludedFiles">
      <list>
        <option value="$PROJECT_DIR$/path/to/App.js" />
        ...
      </list>
    </option>
  </component>