angular - 类不是 Angular 模块 - 仅在 IntelliJ/Webstorm 中导入本地构建 Angular 库时

标签 angular intellij-idea angular-library

我正在尝试使用在单独的 Angular 应用程序中存在的库(项目)中实现的 Angular 模块。在 IntelliJ 中,我得到一个错误 Class MyModule is not an Angular module 并且在我可以为这个项目成功运行 ng build 时,所有库似乎都无法在 IntelliJ 中识别。更奇怪的是,我实际上在另一个 Angular 应用程序中存在两个 Angular 库,我可以毫无问题地使用另一个库中的模块。

我已经访问过其他与class is not an Angular module相关的类似问题,但它们似乎并不相关。

最佳答案

这是我思考几个小时后找到的答案。我如何在主项目中使用有问题的库是:

  • npm link 在 lib 的 build 文件夹中
  • npm link @my-org/my-new-lib 在应用程序中我发现了问题。

与库一起使用 ng build @my-org/my-new-lib --watch 这让我可以同时处理这两个项目,在目标应用程序中立即看到结果。

这个问题显然是由于 IntelliJ 中的错误 - https://youtrack.jetbrains.com/issue/WEB-38354?_ga=2.263408847.258701770.1571260138-1443411092.1565629801 - 即使库正确链接到目标应用程序的 node_modules IntelliJ 排除了它,因此库在路径中,这导致路径中的依赖关系被自动排除事实上在 IDE 中不可用。

解决方法(类似于 jetbrains 票中建议的方法)是在目标应用程序的 IDE 中转到符号链接(symbolic link)的 node_modules/@my-org/my-new-lib - 对单击它并选择将目录标记为 -> 未排除

希望这可以为某人节省一些时间,因为它确实令人困惑且难以克服。

关于angular - 类不是 Angular 模块 - 仅在 IntelliJ/Webstorm 中导入本地构建 Angular 库时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437137/

相关文章:

Angular2 Dart - 在 Angular2 组件中获取文本

Angular2+ Material 菜单的行为与菜单不同

angular - 无法在本地主机上的Docker容器之间进行通信

java - 在 Intellij for Java 的单独一行上包装链式方法调用

scala - 使用Scala时,是否有热键可用于在IntelliJ中搜索引用?

scala - 我应该升级到 Intellij 终极版吗?

angular - 构建 Angular 库时包含 Assets

javascript - Angular2 - 没有 'new' 就无法调用类构造函数

angular - 如何在本地开发相互依赖的 Angular 7 库? (npm 链接问题)

Angular 库 : configure exported members