我在 Anuglar v4 上安装了 Angular 语言服务扩展及其 VS 代码包,既没有在 HTML 中获得任何智能感知,也没有在 VS 代码开发人员工具中出现任何错误。
4 回答
我遇到了同样的问题。我可以通过关闭“Angular:Enable-experimental-ivy”设置来修复它。要关闭此设置,请执行以下操作:
- 转到 VS Code 上的扩展选项卡
- 单击 Angular 语言服务 (ALS) 扩展右侧的齿轮图标 --> 扩展设置
- 在扩展设置上,禁用设置“Angular:Experimental-ivy”如果这对你有用,请告诉我。也可能是您的 Typescript 版本和 ALS 不匹配。对任何错误的格式表示歉意,第一次发布回复!
即使在跟踪堆栈溢出的几个线程之后,我也无法解决这个问题,当我发现修复认为涵盖单个帖子中的所有单个步骤以节省某人的时间时,如果您也面临类似的问题,请检查以下内容以纠正根本原因。
基于这个角度文档https://angular.io/guide/language-service我们可以从 VS 代码安装 Angular 语言扩展并且 HTML Intellisense 应该可以工作,在我的情况下,即使在安装之后我也没有在 VS 代码中获得任何 Intellisnense这个扩展:https ://marketplace.visualstudio.com/items?itemName=Angular.ng-template
- 当我们在 vs 代码中加载项目/解决方案时,它会初始化 Angular 语言服务扩展看底部,以检查扩展是否成功初始化。
点击它,我们可以看到它的进度
现在转到帮助 -> 切换开发人员工具(Ctrl + Shift + I)以检查 VS 代码或 Angular 语言服务扩展的任何错误 [参考:https://stackoverflow.com/questions/54393646/angular-language-service-在 vscode 中不工作]
就我而言,到目前为止一切看起来都不错,根据https://angular.io/guide/language-service一些最新的编辑器,我们不需要将 Angular 语言服务包添加到 package.json,但无法找到带有上述声明的任何特定角度版本信息。
因为我在更旧的角度版本安装了相关包
npm i --save-dev @angular/language-service@4.x.x
,以确保我是否缺少任何必需的包即使按照上述步骤进行操作,我也无法获得任何智能感知,并且 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 能够检测到组件变量、方法等。
参考:
https://github.com/angular/vscode-ng-language-service/issues/100(我的问题与这个 GitHub 问题有关)和https://github.com/angular/angular/issues/19406(类似问题)
在 Angular 中打开相同的问题:https ://github.com/angular/angular/issues/23553
如果有人因为任何其他原因遇到类似问题,请告诉我,我将更新此线程以节省某人的时间。
更新我的 VSCode 为我解决了这个问题。更新 VSCode 也会更新 Angular 语言服务扩展。重新加载扩展程序,它现在可以工作了
面临同样的问题,对我来说,修复是禁用 Angular 语言服务扩展,然后重新加载 vscode 并重新启用 Angular 语言服务