VSCode 导入忽略符号链接以支持更深的 node_modules
Posted
技术标签:
【中文标题】VSCode 导入忽略符号链接以支持更深的 node_modules【英文标题】:VSCode import ignoring symlinks in favour of deeper node_modules 【发布时间】:2021-10-19 06:22:09 【问题描述】:我在使用 VSCode/TS 和自动导入时遇到问题。
我们有一项服务,我们称它为 Manager。 Manager 从一个名为 Helpers 的私有 npm 包中导入一些功能。 Manager 和 Helpers 都从另一个名为 Types 的私有包中导入类型。
在本地工作时,我添加到 Types,然后在 Manager 中添加 npm 链接类型以访问新类型,而无需发布 Types 包(在以前的代码库上完成了此操作,没有任何问题,效果很好)
输入问题...一旦符号链接import newType from '@companyName/Types'
的语句实际上会解析为node_modules/@companyName/Helpers/node_modules/Types
,我再多说也不会劝阻它。
我认为这是一个 VSCode 问题,但是如果我重新启动 Typescript 服务器,则会出现一个简短的窗口,它默认为正确的包路径,并且 VSCode 可以看到类型。几秒钟后(我假设一旦 TS 服务器恢复)它显示一个错误,我们又从错误的地方导入。
我可以通过对 node_modules 的相对导入来解决这个问题,但这感觉不太理想。
有人知道这里可能出了什么问题吗?就像 TS 不想使用符号链接的导入,如果它可以在没有符号链接的地方找到它
【问题讨论】:
【参考方案1】:找到解决方案,将其添加到 tsconfig 排序它:
"paths":
"@companyName/types": [
"../node_modules/@companyName/types"
]
,
【讨论】:
以上是关于VSCode 导入忽略符号链接以支持更深的 node_modules的主要内容,如果未能解决你的问题,请参考以下文章
应该如何配置 VSCode 以支持 Lerna Monorepo?