Typescript IDE 自动从 dist 导入而不是 src

Puf*_*ses 4 npm webstorm typescript visual-studio-code yarnpkg

我目前正在开发一个 Typescript Monorepo 项目。

\n

文件夹结构看起来像这样:

\n
Clients\n\xe2\x94\x9c- tsconfig.json\n\xe2\x94\x94- Packages\n   \xe2\x94\x9c- Core\n   | \xe2\x94\x9c- tsconfig.json\n   | \xe2\x94\x9c-\xe2\x94\xac src\n   | | \xe2\x94\x94- MyModule.ts\n   | \xe2\x94\x94-\xe2\x94\xac dist\n   |   \xe2\x94\x9c- MyModule.js\n   |   \xe2\x94\x94- MyModule.d.ts\n   \xe2\x94\x94\xe2\x94\xac Web\n    \xe2\x94\x9c- tsconfig.json\n    \xe2\x94\x94-\xe2\x94\xac src\n      \xe2\x94\x94- WebComponent.tsx\n
Run Code Online (Sandbox Code Playgroud)\n

core/src包含我的模块,其中core/dist包含我的构建。
\n当我自动导入模块时,web/src/WebComponent.tsx它会自动导入为而@myApp/dist/MyModule不是@myApp/src/MyModule.

\n

这是我的 TSConfig 路径的样子(在根文件夹中):

\n
"baseUrl": "./",\n"paths": {\n    "@myApp/core/src/*": ["./packages/core/src/*"],\n }\n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过这个:

\n
"baseUrl": "./",\n"paths": {\n    "@myApp/core/*": ["./packages/core/*"],\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这似乎不是 IDE 问题,因为我们团队中有人同时使用 VSCode 和 Webstorm,两组用户都遇到了此错误。

\n

编辑:
\n如果您也遇到这个问题,我已经编写了一个临时修复程序,但是如果有一个正确的解决方案,我们将不胜感激!

\n

con*_*ion 5

我不确定这是否能完全解决您的问题,但我还是将其留在这里。我只能在 Webstorm 上重现该问题,而不能在 Visual Studio Code 上重现。如果这不能解决您的问题,请发表评论,我将进一步调查。

打字稿配置:tsconfig.json

您可以尝试修改您的tsconfig.jsons 以dist使用exclude标记显式排除文件夹(与 相同的 JSON 级别include),记录在TypeScript 的 TSConfig 参考文档中。

添加以下配置条目

   "exclude": ["dist/**/*"]
Run Code Online (Sandbox Code Playgroud)

应指示不应从 IDE 中导入该目录。然而,这似乎适用于 Visual Studio Code,但不受 Webstorm 的尊重(在下一节中讨论)。我不是 100% 确定为什么 Visual Studio Code 决定尝试导入includes. 如果这在 Visual Studio Code 上不适合您,我将需要更多详细信息来进行复制。

WebStorm(或任何其他 JetBrains IDE)

有两种解决方案:

  • dist项目特定:在任何 JetBrains IDE 上,您可以通过打开上下文菜单(默认情况下右键单击)并单击 ,将目录标记为“排除”(例如目录) Mark Directory as | Excluded
  • 全局:在 下,您可以在下File | Settings | Editor | File Types添加另一个条目。Ignore Files and Foldersdist

注意:这将阻止 IDE 将排除目录(例如dist)中的任何“源”显示为建议。如果标识符明确,它将正确导入它,而无需进一步提示。

不幸的是,这似乎需要开发人员在初始化项目后进行手动交互 - 我无法找到是否可以在 VCS 存储库中指定排除规则,并在 IDE 中初始化项目时自动应用设置。

  • @pfych 你是否可以给我足够的细节来在任一 IDE 中创建最小的复制品?VS 版本,有任何插件,示例存储库吗?我大量使用 WebStorm,并且在“dist”文件夹上使用排除时从未遇到过问题,但我还没有充分使用 Visual Studio Code 来体验交互。 (2认同)