Visual Studio代码中的自动导入仅提供TypeScript中Lerna子包的绝对路径

nc1teljy  于 2023-03-31  发布在  TypeScript
关注(0)|答案(4)|浏览(236)

出于某种原因,最近我的Visual Studio代码发生了变化,开始只提供从子包级别与我的Lerna包的绝对导入,例如:

正如您所看到的,自动导入建议使用@package/server/src/database路径到文件,而实际上应该是../database,因为正在编辑的文件位于同一个包中,并且只是包含我要使用的数据库变量的文件的下一个文件夹。
这是一个bug还是配置问题?
我已经在Visual Studio Code中将TypeScript的Import Module Specifier设置为所有三个选项(auto,relative和absolute),它们似乎都没有任何区别。

lztngnrs

lztngnrs1#

在Visual Studio代码中,菜单 * 文件 * → * 首选项 * → * 设置 * → * 用户设置 *,

"typescript.preferences.importModuleSpecifier": "relative"

对我来说很好用进口的

import { RegistrationComponent } from '../../abc-modules/registration/registration.component';

代替

import { RegistrationComponent } from 'app/abc-modules/registration/registration.component';
wko9yo5t

wko9yo5t2#

在Visual Studio代码中,菜单“文件”→“首选项”→“设置”→“用户设置”
按importModuleSpecifier搜索

9wbgstp7

9wbgstp73#

我从Google登陆到这里,遇到了相反的问题。我的Visual Studio Code示例总是导入相对路径,即使它来自不同的Lerna包。
原来我只是忘了将错误导入的包添加到我的消费包的package.json文件中。
现在,一切都按预期工作。

06odsfpq

06odsfpq4#

我的问题是我在tsconfig.json文件中设置了baseUrl选项。

{
  "compilerOptions": {
    "baseUrl": ".", // remove
  },
}

删除选项后;VSCode立即开始通过相对路径导入。这种方法的好处是,您可以将VSCode选项importModuleSpecifier设置为shortest,并且相对路径导入仍然有效。

相关问题