如何修复 Lerna Monorepo 中的 VSCode 导入路径建议?

Und*_*ion 6 javascript import visual-studio-code lerna monorepo

VSCode 在自动建议导入方面做得很好,但是在 (Lerna) monorepo 中,它仅建议从一个包到另一个包的相对路径,例如:

import example from '../../../@scope/example/lib/index.html'
Run Code Online (Sandbox Code Playgroud)

我需要使用其他包的包名称来引用它们:

import example from '@scope/example';
Run Code Online (Sandbox Code Playgroud)

我的jsconfig.json这是我的 monorepo 的根:

{
  "compilerOptions": {
    "target": "es6",
    "jsx": "react"
  },
  "include": ["**/src/**/*.js"],
  "exclude": [
    "**/node_modules/*",
    "**/dist/*",
    "**/coverage/*",
    "**/demo/*",
    "**/lib/*",
    "**/public/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在 VSCode 中获得正确的自动完成功能吗?

注意:有一个可用的插件,但它仅适用于.ts文件。

Mat*_*ner 5

您可以paths在 a 中进行配置jsconfig.json,让 VS Code 的工具知道如何解析@/路径。

在您的 中jsconfig.json,添加:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
       "@scope/example/*": [ "./path/to/scope/example/*" ]
    }
  },
   "exclude": [
     "node_modules"
  ]
}
Run Code Online (Sandbox Code Playgroud)

您可以配置路径以从任何路径前缀映射到工作区中的子目录。有关更多详细信息,请参阅路径映射文档

请注意,路径仅影响 javascript 或 typescript 文件的导入;导入.html仍然无法正常工作