Angular - 将 fontawesome 导出到功能模块
Angular - export fontawesome to a feature module
在 app.module 中,我得到了以下关于 fontawesome
的几行
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faBars, faCopyright } from '@fortawesome/free-solid-svg-icons';
export class AppModule {
constructor(private library: FaIconLibrary) {
library.addIcons(faBars, faCopyright);
}
如何将它们包含在功能模块中?构造函数部分让我很困扰
图标库是使用 root
scope 提供的,因此每个应用程序始终只有一个图标库实例。因此,将其注入功能模块的构造函数并在那里添加图标是安全的。
尽管您可以从 lazy-loaded 模块构造函数添加图标,但实际上这不会给您带来任何好处。您也可以添加 AppModule
中的所有图标。这是因为 FA 图标的打包方式以及 Angular CLI 构建工具链的工作方式。所有 FA 图标都在单个模块中定义,因此一旦导入任何图标,所有图标(在您的应用程序中使用)都将被加载。这是因为 Webpack 不能将一个模块拆分成多个。例如。如果您同步导入至少一个图标,则所有图标都将独立加载,无论您是否在 lazy-loaded 模块中导入它们。
在 app.module 中,我得到了以下关于 fontawesome
的几行import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faBars, faCopyright } from '@fortawesome/free-solid-svg-icons';
export class AppModule {
constructor(private library: FaIconLibrary) {
library.addIcons(faBars, faCopyright);
}
如何将它们包含在功能模块中?构造函数部分让我很困扰
图标库是使用 root
scope 提供的,因此每个应用程序始终只有一个图标库实例。因此,将其注入功能模块的构造函数并在那里添加图标是安全的。
尽管您可以从 lazy-loaded 模块构造函数添加图标,但实际上这不会给您带来任何好处。您也可以添加 AppModule
中的所有图标。这是因为 FA 图标的打包方式以及 Angular CLI 构建工具链的工作方式。所有 FA 图标都在单个模块中定义,因此一旦导入任何图标,所有图标(在您的应用程序中使用)都将被加载。这是因为 Webpack 不能将一个模块拆分成多个。例如。如果您同步导入至少一个图标,则所有图标都将独立加载,无论您是否在 lazy-loaded 模块中导入它们。