当前位置: 首页 > 知识库问答 >
问题:

Visual Studio Code无法解析角的tsconfig路径

司徒俊健
2023-03-14

我试图使用桶和tsconfig路径选项导入一些服务,但我无法使用angular和vscode。

如果对一个人有效,对另一个人无效...

我的情况似乎很简单:

  • src/app/service中,我有一个在index.ts中导出的服务
  • 我的src/tsconfig.app.json就是这个:
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "types": [],
    "baseUrl": ".",
    "paths": {
      "services": ["app/services"]
    }
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
}

我的angular应用程序编译没有问题,但每次我试图从'services'导入我的服务时,vscode都会给我错误。giving me[ts]找不到模块'services'

为什么呢?

我使用typecript 3.1.6和在vscode设置我有typescript.tsdk:C:/用户/myuser/AppData/漫游/npm/node_modules/typecript/lib(我也试图离开默认设置,没有变化)

编辑:

如果我在中指定路径。/tsconfig.jsonsrc开始,vscode是快乐的,但角不是。

如果我在两个tsconfig中都指定路径。jsonsrc/tsconfig。应用程序。json,vscode和angular都很高兴,但对我来说,这似乎是一个太愚蠢的解决方案。。。


共有3个答案

梁烨
2023-03-14

VSCode似乎只检查tsconfig。json直接放在打开的文件夹中。它不会像tsc一样检查上面的文件夹,也不会查看tsconfig。应用程序。json。因此,在某些情况下,baseUrl可能会丢失,因为VSCode根本没有读取tsconfig。json

VSCode对单个tsconfig的限制。json在一个固定的地方已经存在了一段时间,要让它变得更灵活似乎并不容易:https://github.com/microsoft/vscode/issues/12463(滚动至结尾)

如上所述,这在Angulle-CLI脚手架中很烦人,因为它有多个子项目,在工作区的根部只有一个tsconfig.json。显然,项目在其tsconfig.app.json中可能有不同的basUrls,它们不能都放在根的单个tsconfig.json中。

除了tsconfig中特定于项目的baseUrl,我还有一个变通方法。应用程序。json创建了一个额外的最小值tsconfig。json用于子项目的src文件夹中的VSCode,带有“baseUrl”:并从那里打开VSCode。我没有严格测试过这一点,但到目前为止,Angular编译和VSCode intellisense似乎都很满意。

葛志国
2023-03-14

这个答案对我有用。

希望这个答案能解决其他人面临同样问题的问题。

燕光熙
2023-03-14

我明白了,即使我一直认为这很荒谬...

VsCode会自动查找tsconfig。json文件,它不关心tsconfig。应用程序。json,因此需要在tsconfig中指定路径。json

同时,用户可以在tsconfig中指定baseUrl参数。应用程序。json,它覆盖了上面的一个。

解决方法是删除tsconfig.app.json中的basUrl参数或将其值编辑为".../"

(作为个人评论,考虑到vscode主要用于构建angular解决方案,我认为在angular cli脚手架或vscode如何查找tsconfig文件中,有一些东西应该重新讨论。)

 类似资料:
  • 当我在spring简单数据库连接代码中定义applicationContext时,我遇到了这个错误。 但是,当我把应用上下文的java(数据库测试onnection.java)驻留,它连接没有任何问题。 线程“main”中的异常org.springframework.beans.factory.BeanDefitionStoreExc0019: IOExc0019从类路径资源[应用程序Contex

  • 错误: C:\users\xqwt\appdata\roaming\npm\node_modules\protractor\node_modules\q\q.js:12 6抛出E;TypeError:Object#在function.configParser.resolveFilePatterns(C:\users\xqwt\appdata\roaming\npm\node_module\prot

  • 我在我的新Android Studio版本中遇到了以下错误,基本的hello world也没有在gradle中构建。云你也请帮忙。 这是我在新的android Studio版本中收到的错误: 我的分级文件如下 这是我得到的日志 无法解析“”的依赖项:app@debug/compileClasspath“:无法解析com.android.support:appcompat-v7:28.0.0-rc0

  • 新安装的Android studio 3.1.3在制作新项目和第一次编译时出现了奇怪的依赖错误。 一个无助于解决问题的类似问题。 这个问题在我身上发生过几次,强制https或http也不能解决它

  • 问题内容: 我在debian jessie上安装了elasticsearch 1.7.3。它使用默认配置文件,并且可以正常工作。但是当我打电话给它返回一个错误: 文件存在,我可以在nano中打开他。 有/ etc / default / elasticsearch文件: 和文件中没有记录。 有人知道为什么会失败吗? 问题答案: 这不是问题的解决。但是我解决了我的问题。 生成bash-command