Ionicons 版本 5 angular
Ionicons version 5 with angular
如何将 ionicons 版本 5 添加到 angular,在版本 4.5 中有一个 scss 可用,我可以那样使用,但现在版本 5 ionicons 使用 svgs 并且不知道如何集成它angular.
当前方法
在angular.json
"styles": [
"./node_modules/ionicons/dist/scss/ionicons.scss",
"src/app/theme/styles/styles.scss"
],
然后在我的 app.component.ts 中(我使用的是 nebular UI)
https://akveo.github.io/nebular/docs/guides/register-icon-pack#register-icon-pack
export class AppComponent implements OnInit {
constructor(private iconsLibrary: NbIconLibraries, public store$: Store<any>, ) {
iconsLibrary.registerFontPack('ion', { iconClassPrefix: 'ion' });
iconsLibrary.registerFontPack('nebular', { iconClassPrefix: 'nb' });
iconsLibrary.setDefaultPack('nebular');
// @ts-ignore
if (window.Cypress) {
// @ts-ignore
window.__appStore__ = store$;
}
}
ngOnInit() {
}
}
我在 issues 中看到 angular 的 ionic 添加了
"assets": [
{
"glob": "**/*",
"input": "src/assets",
"output": "assets"
},
{
"glob": "**/*.svg",
"input": "node_modules/ionicons/dist/ionicons/svg",
"output": "./svg"
}
]
但我不知道如何继续
Ionicons ver 5 看起来不再像 Ionic 4 那样支持字体图标文件,https://github.com/ionic-team/ionicons/tree/4.x#using-the-font-icon。
您可以轻松破解图标。
我创建了this gist,你可以下载它到你的项目中。
然后在 AppComponent
中导入 NbIonIcons
常量,然后使用 NbIconLibraries
中的星云方法 registerSvgPack
添加它(下面的示例)
...
import {NbIonIcons} from './icons';
....
export class AppComponent implements OnInit {
constructor(private iconsLibrary: NbIconLibraries, public store$: Store<any>, ) {
iconsLibrary.registerFontPack('ion', { iconClassPrefix: 'ion' });
iconsLibrary.registerFontPack('nebular', { iconClassPrefix: 'nb' });
iconsLibrary.registerSvgPack('ionicons', NbIonIcons);
iconsLibrary.setDefaultPack('nebular');
// @ts-ignore
if (window.Cypress) {
// @ts-ignore
window.__appStore__ = store$;
}
}
ngOnInit() {
}
}
此时您可以照常使用图标了。
<nb-icon icon="home-outline" pack="ionicons"></nb-icon>
请记住,如果在包中添加/删除图标,您必须更新列表。
第 1 步:npm 安装 ionicons
第 2 步:在 angular.json
的资产中包含 ionicons
"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "**/*",
"input": "node_modules/ionicons/dist/ionicons",
"output": "./ionicons"
},
{
"glob": "**/*.js",
"input": "node_modules/ionicons/dist/",
"output": "./"
}
],
第 3 步:在 Index.html
中添加脚本
<body class="mat-typography">
<app-root></app-root>
<script type="module" src="ionicons/ionicons.esm.js"></script>
<script nomodule="" src="ionicons.js"></script>
</body>
第 4 步:添加模式:[CUSTOM_ELEMENTS_SCHEMA] in app.module.ts
@NgModule({
declarations: [
AppComponent
],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent]
})
如果您在另一个模块中使用 ion-icon 添加架构:[ CUSTOM_ELEMENTS_SCHEMA ] 这样您就不会收到 Web 组件错误。
第 5 步:使用正则像
<ion-icon name="heart"></ion-icon>
如何将 ionicons 版本 5 添加到 angular,在版本 4.5 中有一个 scss 可用,我可以那样使用,但现在版本 5 ionicons 使用 svgs 并且不知道如何集成它angular.
当前方法 在angular.json
"styles": [
"./node_modules/ionicons/dist/scss/ionicons.scss",
"src/app/theme/styles/styles.scss"
],
然后在我的 app.component.ts 中(我使用的是 nebular UI) https://akveo.github.io/nebular/docs/guides/register-icon-pack#register-icon-pack
export class AppComponent implements OnInit {
constructor(private iconsLibrary: NbIconLibraries, public store$: Store<any>, ) {
iconsLibrary.registerFontPack('ion', { iconClassPrefix: 'ion' });
iconsLibrary.registerFontPack('nebular', { iconClassPrefix: 'nb' });
iconsLibrary.setDefaultPack('nebular');
// @ts-ignore
if (window.Cypress) {
// @ts-ignore
window.__appStore__ = store$;
}
}
ngOnInit() {
}
}
我在 issues 中看到 angular 的 ionic 添加了
"assets": [
{
"glob": "**/*",
"input": "src/assets",
"output": "assets"
},
{
"glob": "**/*.svg",
"input": "node_modules/ionicons/dist/ionicons/svg",
"output": "./svg"
}
]
但我不知道如何继续
Ionicons ver 5 看起来不再像 Ionic 4 那样支持字体图标文件,https://github.com/ionic-team/ionicons/tree/4.x#using-the-font-icon。
您可以轻松破解图标。
我创建了this gist,你可以下载它到你的项目中。
然后在 AppComponent
中导入 NbIonIcons
常量,然后使用 NbIconLibraries
中的星云方法 registerSvgPack
添加它(下面的示例)
...
import {NbIonIcons} from './icons';
....
export class AppComponent implements OnInit {
constructor(private iconsLibrary: NbIconLibraries, public store$: Store<any>, ) {
iconsLibrary.registerFontPack('ion', { iconClassPrefix: 'ion' });
iconsLibrary.registerFontPack('nebular', { iconClassPrefix: 'nb' });
iconsLibrary.registerSvgPack('ionicons', NbIonIcons);
iconsLibrary.setDefaultPack('nebular');
// @ts-ignore
if (window.Cypress) {
// @ts-ignore
window.__appStore__ = store$;
}
}
ngOnInit() {
}
}
此时您可以照常使用图标了。
<nb-icon icon="home-outline" pack="ionicons"></nb-icon>
请记住,如果在包中添加/删除图标,您必须更新列表。
第 1 步:npm 安装 ionicons
第 2 步:在 angular.json
的资产中包含 ionicons"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "**/*",
"input": "node_modules/ionicons/dist/ionicons",
"output": "./ionicons"
},
{
"glob": "**/*.js",
"input": "node_modules/ionicons/dist/",
"output": "./"
}
],
第 3 步:在 Index.html
中添加脚本<body class="mat-typography">
<app-root></app-root>
<script type="module" src="ionicons/ionicons.esm.js"></script>
<script nomodule="" src="ionicons.js"></script>
</body>
第 4 步:添加模式:[CUSTOM_ELEMENTS_SCHEMA] in app.module.ts
@NgModule({
declarations: [
AppComponent
],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent]
})
如果您在另一个模块中使用 ion-icon 添加架构:[ CUSTOM_ELEMENTS_SCHEMA ] 这样您就不会收到 Web 组件错误。
第 5 步:使用正则像
<ion-icon name="heart"></ion-icon>