0

我正在使用 vscode 开发一个 React 项目。几天前我注意到,我的任何指向其中包含 index.js/jsx 文件的目录的导入都无法通过 cmd+单击导入或函数名称来解析。

我在右下角收到错误“无法打开:文件是目录”

我的jsconfig.json文件中有以下内容:

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": false,
    "target": "es2017",
    "jsx": "preserve",
    "baseUrl": ".",
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  },
  "exclude": [
    "node_modules",
    "**/node_modules",
    "dist"
  ]
}

我试过了:

  • 完全删除 jsconfig
  • 模块导入/导出模式的各种组合
  • jsconfig文件中paths/baseUrl/other选项的各种组合
  • 禁用所有扩展

似乎没有任何效果。我让 cmd+click 工作的唯一方法是,如果我将导入直接指向组件本身,或者直接指向index.js文件。

请问有人有什么见解吗?谷歌搜索并没有对任何事情产生太大影响。这不是世界末日,因为我对大多数事情使用 cmd+t,但它确实很烦人。FWIW Webstorm 处理导入没有任何问题。干杯。

文件是目录错误消息

编辑:我忘了提。为了增加辣味,在加载 vscode 时 cmd+click 会工作几秒钟。然后“某事”发生并开始抛出错误。其他项目似乎还可以。

4

1 回答 1

0

我想我可能已经通过将 a 添加tsconfig.json到项目根目录中来解决它paths。我现在可以可靠地单击导入并在悬停时查看函数定义。

如果有人遇到类似问题,请尝试以下操作:

{
  "compilerOptions": {
    "moduleResolution": "node",
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "baseUrl": ".",
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
  },
  "include": [
    "src/**/**.ts",
    "tests/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}
于 2022-01-22T19:44:18.057 回答