4

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

import example from '../../../@scope/example/lib/index.html'

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

import example from '@scope/example';

我的jsconfig.json哪个是我的 monorepo 的根源:

{
  "compilerOptions": {
    "target": "es6",
    "jsx": "react"
  },
  "include": ["**/src/**/*.js"],
  "exclude": [
    "**/node_modules/*",
    "**/dist/*",
    "**/coverage/*",
    "**/demo/*",
    "**/lib/*",
    "**/public/*"
  ]
}

有没有办法在 VSCode 中获得正确的自动完成功能?

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

4

1 回答 1

4

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

在您的jsconfig.json中,添加:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
       "@scope/example/*": [ "./path/to/scope/example/*" ]
    }
  },
   "exclude": [
     "node_modules"
  ]
}

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

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

于 2018-12-12T06:41:04.127 回答