【问题标题】:Load one module of angular library加载一个角度库模块
【发布时间】:2020-01-10 02:24:43
【问题描述】:

通过以下命令,我生成了一个名为 (cac-common) 的库

ng generate library cac-common

在这个库中,我有 2 个模块:

cac-common-utility (ng generate module cac-common-utility  --project=cac-common)

cac-common-security (ng generate module cac-common-security  --project=cac-common)

当我想使用cac-common-security 模块时,我必须将它导入到任何模块中,如下所示:

import { CacCommonSecurityModule } from 'cac-common';

...
imports:[ CacCommonSecurityModule ]
...

我的问题是:

1- 上面的导入是加载整个 cac-common 库还是只加载 cac-common-security 模块?

2-为什么我不能像下面这样导入 cac-common-security 模块?

import { CacCommonSecurityModule } from 'cac-common/lib/cac-common-security/cac-common-security.module';

【问题讨论】:

  • 您能否更新您的 2 个后续问题?我对你的要求有点困惑。除了那些你能提供一个简短的例子吗?谢谢
  • 当你有机会进行这些更新时,我会再看看。谢谢

标签: angular angular-library


【解决方案1】:

您可以通过导入其模块来使用库。

或者导入一个名称来包装和导出其中的所有模块。

如果您通过其目录的相对路径导入模块,则库的源必须始终可用。如果您通过导出的名称导入,您可以轻松地将其安装在您想要的任何地方。

【讨论】:

  • 谢谢,您的回答与我的第二个问题有关。我的第一个问题的答案是什么?
  • 从包或库中导入模块只是导入具有在模块内部设置的依赖项的模块,而不是其他任何东西
  • 如果是这样的话,为什么在早期版本的 Angular Material 中,如果我们想使用按钮,我们会像这样导入按钮:import {MatButtonModule} from @angular/material,但在当前版本中我们可以像这样导入:import {MatButtonModule} from '@angular/material/button,这意味着它们之间存在差异。根据您的回答,@angular/material/button@angular/material 之间没有区别
  • 例如,如果你想使用 ngx-button : valor-software.com/ngx-bootstrap/#/buttons 你有两个选项可以导入 1- import { ButtonsModule } from 'ngx-bootstrap/buttons' 2- import { ButtonsModule } from 'ngx-bootstrap'; 他们建议使用 1 。根据您的回答,两者之间没有区别,所以他们为什么推荐 import 1
  • 单独导入表单模块和从桶中导入(导出组)有很大不同,请参阅这篇文章stackoverflow.com/q/54257329/2126355
猜你喜欢
  • 1970-01-01
  • 2023-01-07
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多