Vscode-ng-language-service: 组件未包括在模块中,警告所有不在根AppModule中的组件

创建于 2016-12-08  ·  30评论  ·  资料来源: angular/vscode-ng-language-service

你好

这看起来非常有前途,迫不及待想要使用它!

但是,我很难让它识别在功能模块中声明的组件(延迟加载和非延迟加载)。 所有这些组件都有以下警告(组件装饰器下方带有红色花体)。

[Angular] Component 'xxxComponent' is not included in a module and will not be available inside a template. Consider adding it to a NgModule declaration

这意味着在该模块的模板(根模块中的app.component.html模板是唯一的模板)中,我可以获取完成等信息,以用于同一模块中的指令和导入的内置角度指令。 但是从我自己的导入模块的指令我得到以下内容。

[Angular] 'app-nav' is not a known element: 1. If 'app-nav' is an Angular component, then verify that it is part of this module. 2. If 'app-nav' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message.
我错过了什么吗,或者这可能是一个错误?

我很高兴使用这个。 这将使我的angular 2编码体验变得更好,并希望节省很多时间,所以谢谢!

bug tracking in angular

最有用的评论

我正在使用Angular Language Service 0.1.3,但仍然遇到同样的问题。

所有30条评论

这可能是一个错误,但我不确定。 您能否生成一个可重现此问题的存储库?

当您包含对某个组件的引用中未包含的NgModule或其组件导入的NgModule之一时,会生成此错误。

语言服务扫描整个项目(tsconfig.json包含的所有内容)中的@NgModule声明,并在组件和模块之间创建依赖关系图。 第一个错误是针对未在模块中声明的组件生成的,第二个错误是针对无法从组件所在的模块访问的组件的引用。

刚在一个新的angular-cli项目中尝试过,但似乎无法重现该问题。 不知道这是否仅会影响超过特定阈值大小/模块结构的项目。

我发现问题的项目共有12个模块:

  • 核心模块
  • 共享模块
  • 4个功能模块(带有一些嵌套)
  • 1个根应用程序模块
  • 5个路由模块(对应于4个功能模块和单个root应用程序模块)

当我有机会查看是否可以重现该点时,将进行进一步的观察和试玩。

我认为这可能与#36有关

我仍然在最新版本中遇到相同的问题。

我设法缩小了导致该错误的一种情况。
在使用最新的angular-cli创建的简单解决方案中,我具有以下结构

  • 根AppModule

    • 一个AppComponent

  • 一个CoreModule。

    • 导航组件

    • 一个HomeComponent

    • AuthService

当我将AuthSevice包含在CoreModule的provider数组中并将CoreModule导入AppModule时,出现以下错误。
coremodule

navcomp
HomeComponent也会发生相同的错误。

appcomponent

如果我从CoreModule中的providers数组中注释掉AuthService,错误就会消失。
该应用程序可以正常运行。

我已将示例上传到此存储库

希望这有助于找出问题所在。

跟踪为https://github.com/angular/angular/issues/14631。

当上述土地的修复程序和包含它的新版本的ngls.visx产生时,将关闭此错误。

此问题已在0.1.0修复

仍然存在相同的问题,版本0.1.3

刚刚安装了0.1.3,可以检出此插件。 在运行正常的项目上遇到相同的错误。

它也可以识别

@veldirre您可以创建一个单独的问题并附加一种方法来重现您遇到的问题吗? 这个问题已被解决。 您可能遇到了另一个看起来相似的问题。

@jshea我不确定我是否理解您的问题。 您可以打开一个单独的问题并附加一个复制该问题的项目吗?

@chuckjaz是否有任何调试方法来调查此情况_? 我的所有非路由组件都没有被识别为包含在模块声明中,但是将我们的生产应用程序简化为一个最小的示例将非常耗时(到目前为止,我尝试旋转的所有玩具版本都没有出现了问题)。

我将继续尝试进行小幅复制,但是如果有其他方法可以帮上大忙。

没关系。 发布后,我偶然发现了这个问题:#80。

@tdsmithATabc此线程的原始问题的最初原因已在最新版本0.1.3中修复。

但是,我确实注意到某些组件偶尔仍会出现相同的错误。 经过一番调查后,我意识到这些剩余的错误是由另一个单独的问题#72引起的。

将有问题的组件中的任何服务等的引用更改为相对路径(与tsconfig提供的相对于baseUrl位置的路径相对-默认情况下为“ src /”文件夹)似乎是有问题的组件中的解决方法。 不知道这是否与您遇到的问题相同,但我想在这里提及。

啊,刚给你最后一个信息,没关系。

谢谢小费! 我也遇到了一些路径难题,但是那是因为我们的设置使用的是_project-relative_路径,该路径对开发很好,但对其他所有东西都很可怕...

将Angular Language Service从0.1.2升级到0.1.3已为我解决了此问题。 谢谢!

我正在使用Angular Language Service 0.1.3,但仍然遇到同样的问题。

关于那件事有什么消息吗?
仍然存在0.1.4的问题

我有同样的问题

组件'xxxComponent'不包含在模块中,并且在模板内部不可用。 考虑将其添加到NgModule声明中

当我研究阅读几乎相同问题的一些线程时,错误(大约15分钟后)突然消失了,我认为在更改/添加组件时更多的是时机问题

仍然存在0.1.7的问题

在0.1.9上遇到。

通过使用教程模板启动新的离子项目并创建需要在app.module.ts文件中声明新页面类的新页面来重现。

我可以通过重新启动项目来解决这个问题,这不是世界末日,而是带来不便。

使用指令在0.1.9上有此问题

我可以确认与@ josh-strickland-4c相同的行为
这是我的VSCode信息:
版本1.19.3
提交7c4205b5c6e52a53b81c69d2b2dc8a627abaa0ba
日期2018-01-25T10:36:34.867Z
壳牌1.7.9
渲染器58.0.3029.110
节点7.9.0
建筑x64

我可以报告带有组件的0.1.9版本的此问题。

我有同样的错误。 b / c首先,我使用“ ng gc post”创建了一个组件,然后在post内创建了另一个文件夹,然后将之前创建的所有文件推入并重命名所有文件,然后发布到post-create。 然后我也遇到了同样的错误..即使VS代码说了一个错误,我的chrome控制台也没说什么。 而且有效。
1

碰撞,使用延迟加载模块时在0.1.9中存在相同问题。 如果需要详细信息,则为lmk。

在库项目(使用angular cli创建)中2018.2仍然存在问题。

在Webstorm Project中对我来说也一样!

WebStorm的相同问题。
image
角Cli 6.2.3
角6.1.9

由于不活动,此问题已自动锁定。
如果您遇到类似或相关的问题,请提出新的问题。

阅读有关我们的自动对话锁定策略的更多信息。

_此动作已由漫游器自动执行。_

此页面是否有帮助?
0 / 5 - 0 等级