[解決済み】angular-cliプロジェクトにbootstrapを追加する方法
質問
angular-cli 1.0.0-beta.5 (w/node v6.1.0) で生成したアプリに bootstrap 4 (4.0.0-alpha.2) を使いたいのですが、どうすればよいですか?
npmでブートストラップとその依存関係を取得した後、最初のアプローチとして、それらを
angular-cli-build.js
:
'bootstrap/dist/**/*.min.+(js|css)',
'jquery/dist/jquery.min.+(js|map)',
'tether/dist/**/*.min.+(js|css)',
でインポートし
index.html
<script src="vendor/jquery/dist/jquery.min.js"></script>
<script src="vendor/tether/dist/js/tether.min.js"></script>
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/dist/css/bootstrap.min.css">
<script src="vendor/bootstrap/dist/js/bootstrap.min.js"></script>
でうまくいきました。
ng serve
を使ったビルドを作成した途端
-prod
フラグからこれらの依存関係がすべて消えました。
dist/vendor
(驚)。
angular-cliで生成されたプロジェクトで、このようなシナリオ(ブートストラップスクリプトの読み込みなど)をどのように扱うことを想定しているのでしょうか?
以下のようなことを考えていたのですが、どのようにすればいいのかよくわかりません...。
-
CDNを使用するか? しかし、我々はむしろこれらのファイルが利用可能であることを保証するために提供したい。
-
に依存関係をコピーします。
dist/vendor
の後にng build -prod
? しかし、これはangular-cliがビルド部分を'世話'してくれるので、angular-cliが提供すべきことのように思えますが? -
にjquery、bootstrap、tetherを追加しました。
src/system-config.ts
でバンドルに取り込みます。main.ts
? しかし、アプリケーションのコードでそれらを明示的に使用する予定がないことを考えると、それは間違っているように思えました(例えば、moment.jsやlodashのようなものとは異なります)。
どのように解決するのか?
重要な更新です。 ng2-bootstrap は、現在、次のように置き換えられています。 ngx-bootstrap
ngx-bootstrap は、Angular 3 と 4 の両方をサポートしています。
更新情報 : 1.0.0-beta.11-webpack またはそれ以上のバージョン
まず最初に angular-cli のバージョンは、ターミナルで以下のコマンドを実行してください。
ng -v
もし、あなたの アンギュラークリ よりも大きなバージョンです。 1.0.0-beta.11-webpack の場合、以下の手順を実行してください。
-
インストール ngx-bootstrap と ブートストラップ :
npm install ngx-bootstrap bootstrap --save
この行は、現在ではBootstrap 3をインストールしますが、将来的にはBootstrap 4をインストールすることができます。覚えておいてください ngx-bootstrap は両方のバージョンをサポートしています。
-
開く src/app/app.module.ts を追加してください。
import { AlertModule } from 'ngx-bootstrap'; ... @NgModule({ ... imports: [AlertModule.forRoot(), ... ], ... })
-
開く angular-cli.json (angular6以降では、ファイル名が angular.json に新しいエントリを挿入してください。
styles
の配列になります。"styles": [ "styles.css", "../node_modules/bootstrap/dist/css/bootstrap.min.css" ],
-
開く src/app/app.component.html を追加してください。
<alert type="success">hello</alert>
1.0.0-beta.10またはそれ以下のバージョン。
そして、もしあなたの アンギュラークリ バージョンは 1.0.0-beta.10 以下は、その場合の手順です。
まず、プロジェクトディレクトリに移動し、次のように入力します。
npm install ngx-bootstrap --save
そして、あなたの angular-cli-build.js で、この行を追加してください。
vendorNpmFiles: [
...
'ngx-bootstrap/**/*.js',
...
]
では、あなたの src/system-config.ts と書いてから
const map:any = {
...
'ngx-bootstrap': 'vendor/ngx-bootstrap',
...
}
...と。
const packages: any = {
'ngx-bootstrap': {
format: 'cjs',
defaultExtension: 'js',
main: 'ngx-bootstrap.js'
}
};
関連
-
[解決済み】ERR_INVALID_HTTP_RESPONSEをAngular 7とASP.Net Core 2.2を使ってGoogle Chromeブラウザーで使用する場合
-
[解決済み] Uncaught (in promise): Ionic 2でcordova_not_available。
-
[解決済み] Angular 2でディレイを作成する方法
-
[解決済み] "エラーです。オーバーレイのプロバイダがありません!"
-
[解決済み] Angular InjectionTokenが「No provider for InjectionToken」をスローします。
-
[解決済み] Twitter Bootstrapのメニューをクリックではなく、ホバーでドロップダウンさせる方法
-
[解決済み] Twitter Bootstrap 3を使用して列を中央に配置する
-
[解決済み] Bootstrapの列をすべて同じ高さにするにはどうしたらいいですか?
-
[解決済み] モジュール "@angular-devkit/build-angular" が見つかりませんでした。
-
[解決済み】Angular 2 + CLIプロジェクトにfont-awesomeを追加する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular2エラー。exportAs "が "ngForm "に設定されたディレクティブは存在しません。
-
[解決済み] Angular CLIでコンポーネントの名前を変更する方法は?
-
[解決済み] ng serve または firebase serve を終了させる方法
-
[解決済み] Angular2 - エラー。セレクタ "app-root" はどの要素にもマッチしませんでした。
-
[解決済み] プロパティ 'json' はタイプ 'Object' に存在しません。
-
[解決済み] ウェブストーム Must be lvalue」の意味するところ
-
[解決済み] "エラーです。オーバーレイのプロバイダがありません!"
-
[解決済み] Angular2の$document.ready()に相当します。
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。
-
[解決済み] ローカルホストが私のアンギュラーアプリに対して無効な応答を送信しました。