Angular Language Service 不能与 VS Code 一起工作,可能的方法来跟踪问题

Mau*_*lik 2 visual-studio-code angular angular-language-service

我在 Anuglar v4 上安装了 Angular 语言服务扩展和它的 VS 代码包,既没有在 HTML 中获得任何智能感知,也没有在 VS 代码开发工具中获得任何错误。

小智 5

我遇到了同样的问题。我可以通过关闭“Angular: Enable-experimental-ivy”设置来修复它。要关闭此设置,请执行以下操作:

  1. 转到 VS Code 上的扩展选项卡
  2. 单击 Angular Language Service (ALS) 扩展右侧的齿轮图标 --> 扩展设置 [1]:https : //i.stack.imgur.com/79u6T.png
  3. 在扩展设置上,禁用设置“Angular: Experimental-ivy”请告诉我这是否适合你。也可能是您的 Typescript 版本和 ALS 不匹配。对任何格式错误表示歉意,第一次发布回复!

  • 在 ALS v12.2.0 中,它有一个名为“Angular: View-engine -> Use Legacy View Engine language service”的选项,我认为它相当于“experimental-ivy”。通过打开此选项,我能够解决此问题。 (2认同)

Mau*_*lik 1

即使在跟踪堆栈溢出上的几个线程之后,我也无法解决该问题,并且当我发现修复思想涵盖单个帖子中的所有单独步骤以节省某人的时间时,如果您也面临类似的问题,请检查以下内容纠正根本原因。

基于这个角度文档https://angular.io/guide/language-service,我们可以从 VS 代码安装 Angular Language Extension,并且 HTML Intellisense 应该可以工作,在我的情况下,即使在安装之后,我也没有在 VS 代码中获得任何 Intellisnense此扩展:https://marketplace.visualstudio.com/items?itemName =Angular.ng-template

  1. 当我们在 VS Code 中加载项目/解决方案时,它会在底部初始化 Angular Language Service 扩展,以检查扩展是否成功初始化。

在此输入图像描述

单击它我们可以看到它的进度

在此输入图像描述

  1. 现在转到“帮助”->“切换开发人员工具”(Ctrl + Shift + I),检查 VS Code 或 Angular Language Service 扩展的任何错误 [参考:/sf/ask/3807555251/无法在 vscode 中工作]

  2. 就我而言,到目前为止一切看起来都很好,根据https://angular.io/guide/language-service一些最新的编辑器,我们不需要将 Angular 语言服务包添加到 package.json,但无法找到上述声明中的任何特定角度版本信息。

  3. 由于我使用的是较旧的角度版本,因此安装了相关软件包npm i --save-dev @angular/language-service@4.x.x,以确保我是否缺少任何必需的软件包

  4. 即使按照上述步骤操作,我也无法获得任何智能感知,并且 VS Code Developer Tool 中仍然没有任何错误

  • No definition found for 'variable'因此,我根据HTML 文件中的此错误检查了我的代码。组件似乎没有与 HTML 文件链接。

  • Component 'AppComponent' must have a template or templateUrl ng即使提供了组件声明,也能看到错误。

  • 后来发现由于 SystemJS/Webpack 我们使用了 template: require('./app.html')导致问题的语法

  • 将其替换为templateUrl: './app.html',现在 HTML 能够检测到组件变量、方法等。

参考:

让我知道如果有人因为任何其他原因遇到类似的问题,我将更新此线程以节省某人的时间。