Puf*_*ses 4 npm webstorm typescript visual-studio-code yarnpkg
我目前正在开发一个 Typescript Monorepo 项目。
\n文件夹结构看起来像这样:
\nClients\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\nRun Code Online (Sandbox Code Playgroud)\ncore/src包含我的模块,其中core/dist包含我的构建。
\n当我自动导入模块时,web/src/WebComponent.tsx它会自动导入为而@myApp/dist/MyModule不是@myApp/src/MyModule.
这是我的 TSConfig 路径的样子(在根文件夹中):
\n"baseUrl": "./",\n"paths": {\n "@myApp/core/src/*": ["./packages/core/src/*"],\n }\nRun Code Online (Sandbox Code Playgroud)\n我也尝试过这个:
\n"baseUrl": "./",\n"paths": {\n "@myApp/core/*": ["./packages/core/*"],\n}\nRun Code Online (Sandbox Code Playgroud)\n这似乎不是 IDE 问题,因为我们团队中有人同时使用 VSCode 和 Webstorm,两组用户都遇到了此错误。
\n编辑:
\n如果您也遇到这个问题,我已经编写了一个临时修复程序,但是如果有一个正确的解决方案,我们将不胜感激!
我不确定这是否能完全解决您的问题,但我还是将其留在这里。我只能在 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 上不适合您,我将需要更多详细信息来进行复制。
有两种解决方案:
dist项目特定:在任何 JetBrains IDE 上,您可以通过打开上下文菜单(默认情况下右键单击)并单击 ,将目录标记为“排除”(例如目录) Mark Directory as | Excluded。File | Settings | Editor | File Types添加另一个条目。Ignore Files and Foldersdist注意:这将阻止 IDE 将排除目录(例如
dist)中的任何“源”显示为建议。如果标识符明确,它将正确导入它,而无需进一步提示。
不幸的是,这似乎需要开发人员在初始化项目后进行手动交互 - 我无法找到是否可以在 VCS 存储库中指定排除规则,并在 IDE 中初始化项目时自动应用设置。
| 归档时间: |
|
| 查看次数: |
3455 次 |
| 最近记录: |