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

标签 javascript import visual-studio-code lerna monorepo

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 中获得正确的自动完成功能?

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

最佳答案

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

在您的 jsconfig.json 中,添加:

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

您可以将路径配置为从任何路径前缀映射到工作区中的子目录。查看path mapping documentation了解更多详情

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

关于javascript - 如何修复 Lerna Monorepo 中的 VSCode 导入路径建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53711437/

相关文章:

javascript - webpack:同一模块中的 import + module.exports 导致错误

c# - 如何在 VS Code 中快速添加缺少的命名空间?

jasmine - Intellisense 不适用于 VS Code 上的 Jasmine

c++ - 无法使用 cmake + vcpkg 在 VS Code 中包含 C++ 项目的库

javascript - 仍然无法弄清楚我在让 PHP 函数处理 WordPress 中的 AJAX 请求方面做错了什么

javascript - 展开 HTML 标签

javascript - JQuery 响应式菜单不起作用

python - 为什么有时我可以使用嵌套模块中的函数而无需导入整个路径?

JavaScript 无法在 Firefox 中运行

Java导入通配符不导入包内的所有内容