Angular2アプリでbootstrapグリフィコンを使用しようとしています。npm install bootstrapコマンドを使用して、bootstrap- -私のコードスニペットは
<button *ngIf="pos.name == uname" type="button" class="btn btn-default btn-sm delete" (click)="DeleteBulletin();">
<span class="glyphicon glyphicon-trash glyph"></span> Delete
</button>
bootstrapにstyleUrls- styleUrls:['node_modules/bootstrap/dist/css/bootstrap.min.css'、 'app/home.component.css']を含めました。
Boostrap 4サポートしないグリフィコンは、代わりに Font Awesome を使用できます:
npm install --save font-awesome
cssファイルを.angular-cli.jsonに追加します
"apps": [
{
....
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.css",
"../node_modules/font-awesome/css/font-awesome.css"
],
...
}
]
],
CSSクラスをFont Awesomeクラスに置き換えます。
<i class="navbar-toggler-icon fa fa-bars"> </i>
アプリの再コンパイル:ng serve
インポートする必要があります
<link data-require="[email protected]" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
あなたのindex.htmlへ
Bootstrap3をnpm install bootstrap @ 3としてインストールし、動作を開始しました
単にangle-cli.jsonを追加する必要があります-
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.css"
],
アプリケーションがangular-cli(によって足場されている場合、プロジェクトのルートのangular-cli-build.jsファイルがあります( 「ng init」または「ng new」を使用)。
angular-cli-build.jsは、プロジェクトのビルドを指示し(「ng serve」または「ng build」を使用)、サードパーティライブラリをに配置しますvendorフォルダー。
グリフィコンファイルを保持するbootstrap配布フォルダーに、fontsフォルダーがあります。これらのbootstrapファイルもベンダーフォルダーに配置する必要があります。
angular-cli-build.js:
// Angular-CLI build configuration
// This file lists all the node_modules files that will be used in a build
// Also see https://github.com/angular/angular-cli/wiki/3rd-party-libs
/* global require, module */
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/**/*.+(js|js.map)',
'es6-shim/es6-shim.js',
'reflect-metadata/**/*.+(ts|js|js.map)',
'rxjs/**/*.+(js|js.map)',
'@angular/**/*.+(js|js.map)',
'bootstrap/dist/css/bootstrap.min.css',
'bootstrap/dist/fonts/*'
]
});
};
完全を期すために、bootstrapのセットアッププロセスは以下のいくつかの手順で行いました。
コマンドライン:
npm install bootstrap --save
index.html:
<link href="/vendor/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
「ng serve」を再起動するか、単に「ng build」で再構築します
ページソースの結果は次のとおりです。
Bootstrap 4を使用している場合、セルフリリースにはグリフィコンは含まれません。したがって、FontAwesomeなどの別のアイコンパッケージを使用するか、グリフィコンを個別にインストールする必要があります。
私はFontAwesomeとその依存関係を私のケースで使用しています:
"dependencies": {
"@angular/animations": "^5.0.0",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/router": "^5.0.0",
"@ng-bootstrap/ng-bootstrap": "1.0.0-beta.9",
"bootstrap": "4.0.0",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"jquery": "^3.2.1",
"popper.js": "^1.12.9",
"rxjs": "^5.5.2",
"zone.js": "^0.8.14"
},
"devDependencies": {
"@angular/cli": "^1.6.5",
"@angular/compiler-cli": "^5.0.0",
"@angular/language-service": "^5.0.0",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"TypeScript": "~2.4.2"
}
HTMLテンプレートには、次のようなコードを配置するだけです。
<i class="fa fa-refresh" aria-hidden="true"></i>
style_rlsでbootstrapファイルを含めると問題が発生しますが、理由はわかりませんが、ブラウザがグリフィコンの別の場所を見ることがわかりました。
@Component({
moduleId: module.id,
selector: 'app-projects',
templateUrl: 'projects.component.html',
styleUrls: ['projects.component.css','../../vendor/bootstrap/dist/css/bootstrap.min.css'],
providers:[ProjectsService]
})
上記のメソッドを使用してbootstrapスタイルシートファイルを呼び出すと、次のエラーが発生します。「GET http:// localhost:4200/fonts/glyphicons-halflings-regular.woff 」
このエラーからわかるのは、ブラウザがlocalhost:4200/fonts/...
を探しているのがlocalhost:4200/vendor/bootstrap/dist/fonts/...
であることです
とにかく、回避策は、dist
配列のangular-cli-build.js
ファイル内のbootstrapのvendorNpmFiles
フォルダーを'bootstrap/dist/**/*.+(js|css|eot|ttf|woff|woff2)'
として追加し、bootstrapを削除することです。 styleUrls
のスタイルシート。
次に、index.htmlに次の行を追加します。
<link href="/vendor/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
ng serve
またはng build
を忘れないでください
実行してください
npm install glyphicons --save
そして、コンポーネントにグリフィコンをインポートしてください
import icons from 'glyphicons';
var icons = require('glyphicons');
console.info('This is' + icons.heart+ ' Glyphicons!')
ブラウザコンソールで1回確認できます。
FontAwesomeのアドバイスは正しいですが、一部だけです。 FontAwesomeの指示に従えば、Angularプロジェクトで失敗します。
代わりに このページ のヒントを確認してください。
Font Awesomeには、プロジェクトで簡単にアイコンを使用したいすべての人が利用できる公式のAngularコンポーネントがあります。 Angularを使用している場合は、angular-fontawesomeパッケージまたはCSS付きWebフォントが必要です。
[OK]これは、次のパッケージを使用する必要があるAngularプロジェクトでを意味します: Angular FontAwesome
NPMを使用しているときに見つけた最高のページは このページ です。
したがって、基本的には次のことが必要です。
詳細はすべて上記のリンクで説明されています。
コード:
<fa-icon [icon]="faPowerOff"></fa-icon>
コード:
import { faPowerOff } from '@fortawesome/free-solid-svg-icons';
...
export class AppComponent implements OnInit {
faPowerOff = faPowerOff;
...
1つの重要な注意!
AngularバージョンのNPMに正しいバージョンのAngularFontawesomeをインストールする必要があることを認識してください。互換性テーブルについては、 このページ を確認してください。
Angular 5を使用したため、次のようにインストールする必要がありました。
npm install @fortawesome/[email protected]
その後、エントリがpackage.jsonファイルに追加されます。
@Sebastian Viereckと同じことをしました。しかし、私はやりました
npm install --save-dev @fortawesome/fontawesome-free
そして、angular.json
"styles": ["node_modules/bootstrap/dist/css/bootstrap.css",
"node_modules/@fortawesome/fontawesome-free/css/all.min.css",
"src/styles.css"
],
Fontawesomeには新しい有料版があるようです