【问题标题】:VSCode goToDefenition not working when .jsx and .js files of same name in same folder当 .jsx 和 .js 文件在同一个文件夹中时,VSCode goToDefenition 不起作用
【发布时间】:2021-11-19 15:38:46
【问题描述】:

我的结构是:

/Home
  /home.js
  /Home.jsx

在 .jsx 中,我尝试在带有 webpack 别名的路径上使用 go to defenition 功能。要解析 webpack 别名,我有 jsconfig.json 和这个参数:

{
  "compilerOptions": {
    "target": "es6",
    "module": "es6",
    "moduleResolution": "node",
    "jsx": "react-jsx",
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  },
  "exclude": ["node_modules", "dist"]
}

而且只有在这种情况下

当 .jsx 和 .js 文件在同一个文件夹中时

我无法使用该功能。 如果我重命名文件它开始工作。它也可以在 WebStorm 中运行而无需任何更改。

请告诉我怎么了……

【问题讨论】:

    标签: javascript reactjs visual-studio-code vscode-jsconfig


    【解决方案1】:

    我修好了!

    当我停用此扩展时,问题消失了:JavaScript and TypeScript Nightly

    【讨论】:

      【解决方案2】:

      VSCode 在后台使用 TS 引擎来分析 JS。 TS 中的约定是省略文件扩展名。所以从TS引擎的POV来看,这两个同名但扩展名不同的文件很混乱。

      我猜这只是 TS 语言引擎的限制(或错误?我不确定),不一定是你做错了什么。 WebStorm 显然使用其他实现来分析/解决包引用。因此你不会在那里遇到问题。

      我真的不知道你的问题的解决方案,只能提供以上解释。如果我是你,我只会重命名我的文件,不会花时间与工具作斗争。

      【讨论】:

      • 非常感谢。有了你的解释,我会很容易地把新的命名格式推送给我的团队。
      • 检查我自己的答案。
      猜你喜欢
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      相关资源
      最近更新 更多