Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio代码中的自动导入仅提供带有TypeScript中Lerna子包的绝对路径_Typescript_Visual Studio Code_Auto Import - Fatal编程技术网

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

Visual Studio代码中的自动导入仅提供带有TypeScript中Lerna子包的绝对路径,typescript,visual-studio-code,auto-import,Typescript,Visual Studio Code,Auto Import,出于某种原因,最近我的Visual Studio代码发生了更改,并开始仅提供从子包级别对我的Lerna包的绝对导入,例如: 如您所见,自动导入建议文件的路径为@package/server/src/database,而它应该是。/database,因为正在编辑的文件位于同一个包中,并且只是包含我尝试使用的数据库变量的文件下方的一个文件夹 这是错误还是配置问题 我已将Visual Studio代码中TypeScript的导入模块说明符设置为所有三个选项(自动、相对和绝对),它们似乎都没有任何区别

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

如您所见,自动导入建议文件的路径为
@package/server/src/database
,而它应该是
。/database
,因为正在编辑的文件位于同一个包中,并且只是包含我尝试使用的数据库变量的文件下方的一个文件夹

这是错误还是配置问题


我已将Visual Studio代码中TypeScript的
导入模块说明符设置为所有三个选项(自动、相对和绝对),它们似乎都没有任何区别。

在Visual Studio代码中,菜单文件→ 偏好→ 设置→ 用户设置

这对我来说很好。它进口

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

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

我从谷歌登陆这里,遇到了相反的问题。我的Visual Studio代码实例始终导入相对路径,即使它来自不同的包

事实证明,我只是忘记了将错误导入的包添加到我的消费包的
package.json
文件中


现在,一切正常。

如果您设置了一个存储库,我可以克隆该存储库来重现问题,那么我将使用它。(我不想花时间尝试自己建立一个像你这样的项目,结果可能无法重现问题。)Fwiw,至少有一个用户在workplace和用户文件中将
importModuleSpecifier
设置为
relative
,并且它仍然以完整的pat导入--编辑:建议的TS版本--在那里,一个不同的版本和问题可能会导致奇怪。从TS 2.3.2更改为3.4.5为我解决了此问题/耸耸肩谢谢你!当设置为自动时,它似乎在使用相对路径和绝对路径之间发生变化。我将指出:最好使用绝对路径,但从源目录(src/)开始,比如“import..from”my module/bla/bla/ClassName.js“因为这种方法可以让您在不更改导入的情况下移动包和类。所以你应该避免相对路径。John Tribe的建议是合法的。然而,我使用TypeScript,TS使用“src”文件夹,transplied JS使用“dist”文件夹,所以绝对路径会导致运行时错误。惊人的解决方案@hirikarate,帮自己一个忙,停止使用abs路径。生态系统不完全支持它(包括IDE)。我花了6个月的时间让它工作。完全浪费时间
JavaScript>首选项:导入模块说明符用于自动导入的首选路径样式。
-->
relative(另外,对于jest测试,绝对路径会破坏测试套件@JohnTribe。)
import { RegistrationComponent } from 'app/abc-modules/registration/registration.component';