【问题标题】:React cant resolve absolute path in VS2019 with a jsconfig.json fileReact 无法使用 jsconfig.json 文件解析 VS2019 中的绝对路径
【发布时间】:2021-12-03 04:01:57
【问题描述】:

我使用 Visual Studio 2019 中的内置模板创建了一个 Asp.net 核心 React 项目

该项目创建了一个名为 ClientApp 的单独文件夹,React 项目位于该文件夹中。我已经完成了 npm init。

我在 ClientApp 文件夹的根目录下添加了一个 jsconfig.json 文件,如下所示。

文件夹

jsconfig.json

当我尝试使用 jsconfig 中定义的绝对路径导入组件时,编译器找不到路径。

并产生错误

我试图删除从“./src/components/”到“src/components/”的路径的“./”,如下所示

但错误仍然存​​在

更新

基于此线程https://dev.to/larswaechter/path-aliases-with-typescript-in-nodejs-4353,在 jsconfig.json 文件中配置别名时,您可以在应用程序中使用新的路径别名进行模块导入。您的 IDE 或编译代码时出现任何错误。

但是,当您尝试将 TS 代码编译为 JS 时,您不会看到任何错误。但是一旦你运行你编译好的 JS 代码你就会得到一个错误:

例如: 错误:找不到模块“@modules/user” 那是因为 JS 无法解析声明的路径别名的模块...根据文章,可以通过安装一个名为 module-alias 的 npm 包来解决。

【问题讨论】:

  • 我可以知道你的文件夹路径架构吗?
  • - ClientApp(是根文件夹)并直接包含文件 jsconfig.json。然后它包含另一个文件夹,例如 ClientApp > src > components。

标签: reactjs visual-studio-2019


【解决方案1】:

你已经设置了baseUrl. 你不需要在paths 属性中添加./

"baseUrl": ".",
"paths": {
   "@Components/*": [ "src/components/*" ]
}

【讨论】:

  • jsconfig 文件所在的根文件夹是 ClientApp,然后是文件夹 ClientApp > src > components。如您所见,我直接从根文件夹开始指向组件,例如“@Components/*”:[“src/components/*”]。
  • 据我了解,基本 url 是您的路径应该开始的地方,所以如果你输入“.”,它应该指的是“jsconfig”文件所在的位置。现在,如果我们想为“src”文件夹创建一个路径快捷方式,它应该是“src/”,如果我们想为“components”创建一个路径快捷方式,它应该是“src/components”。我真的不明白为什么编译器不解析路径。在 vs2019 中使用 create react app 项目在 ClientApp 中有一个 jsconfig 文件是否有效?编译器会使用它吗?我在microsoft vs code 2019的官方文档中发现了这种方式。
  • 我正在使用 asp .net core 5. 和 ES6。
  • 我试过你的方法还是不行:(
  • 你使用过 CRA(创建 React 应用程序)吗?
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
  • 2023-04-05
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多