2016-07-23 11 views
6

私はangular2-webpack-starterを使ってプロジェクトをビルドしています。私はブートストラップも使いたいと思います。Angular2 webpack:ブートストラップをインポートする方法

npm install ng2-bootstrap --saveとしてインストールします。 ng2-bootstrapにはいくつかの指示文しかありませんので、それをスタイルするには "実際の" .cssのブートストラップファイルが必要ですが、その作者は私たちが持っていたと仮定しているようですので、ブートストラップをnpm install bootstrap --saveとしてインストールします。

今、私の質問は、ng2-bootstrapが使用できるように、 "実際の"ブートストラップ.cssファイルをプロジェクトにインポートする方法です。

私はいくつかの方法を試してみました:

  1. は私のsrc/assets/cssフォルダにnode_modules/bootstrap/dist/cssフォルダからbootstrap.min.cssファイルをコピーして、自分のindex.html<link href="assets/css/bootstrap.min.css" rel="stylesheet">を追加します。この方法では動作しますが、bootstrap.min.cssファイルはnpmで管理されなくなります。私は将来それを手動で更新する必要があります。

  2. 別の試みは、私のapp.component.ts

    のようなスタイルから、それを必要とされています[ (」./ app.style.css ')が必要です、 は' ../../ node_modules /ストラップ/ DIST(必要/css/bootstrap.min.css') ]、

が、それを解決することはできません。

  1. 最後に試してみると、import '@angular/core';と同じようにimport 'bootstrap';vendor.browser.tsが追加されています。しかし、どちらも失敗しました。 bootstrapは、簡単にインポートできる@angular2/coreのようなパッケージではないようです。

だから、私の質問は、それがng2-bootstrapと私のプロジェクト内の他のコンポーネントで使用することができ、それはまた、NPMを使用してアップグレードすることができるように、WebPACKの中で/負荷bootstrapをインポートする方法にダウンしています。

+0

番号2について。node_modulesから直接cssをインポートできないのですか?私はこれをやっても問題ありません。 – Helzgate

+0

@Helzgateできません。あなたはそれをどうやってインポートしますか?require( '../../ node_modules/bootstrap/dist/css/bootstrap.min.css') 'のようなものですか? –

+0

私は分かりません。ちょうどうまくいきます。私はアプリでいくつかの場所でこのように使用しています(そして、私はnode_modulesから話しています)。十分なエリプスがあると絶対に確信していますか?私はいくつかの../を追加しようとしたり、それを試したり、いくつかを差し引いてみたりします。エラーにも注意してください。おそらく、CSSを読み込んでいますが、他のエラーが発生しています。 – Helzgate

答えて

0

import 'bootstrap';は、CSSではなく、ブートストラップのJSエントリポイントを参照します。代わりに番号

import 'bootstrap/assets/css/bootstrap.min.css'; 

で試してください。あなたが使用してCSS-ローダー ダウンロードCSS-ローダーを使用する必要が

+0

動作しません。私は '/〜/ bootstrap/dist/css/bootstrap.min.css'で' ERROR 'を取得します。 cssファイルは 'node_modules/bootstrap/dist/css/bootstrap.min.css'にありますが、' .ts'ファイルに '.css'ファイルをインポートできないようです。解決できません。 –

+0

jqueryを追加するにはどうすればよいですか?ベンダーにファイルをインポートすると、Uncaught Error:BootstrapのJavaScriptにjQueryが必要ですが、Cssはうまく動作します。 – kirqe

5

は、私は私の角度の2にいくつかのテストを行なったし、それはあなたがあなたのWebPACKにし、いくつかのローダー

npm install css-loader style-loader url-loader file-loader --save-dev 

を必要とする作業します。あなたは、あなたが でそれを使用しようとしているブートストラップファイルを読み込むことができ、この

loaders: [ 
    {test: /\.css$/, loader: ['style-loader', 'css-loader']}, 
    {test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff" }, 
    {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream" }, 
    {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file" }, 
    {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml" }, 
    {test: /\.html$/, loader: 'raw',exclude: /node_modules/}, 
    {test : /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,loader : 'file-loader'}, 
] 

のようなローダーを使用することができますconfigおよびあなたは

import "bootstrap/dist/css/bootstrap.css"; 
    @Component({ 
     selector: "sg-nav", 
     template: ` 
        <div class="container"></div>`, 
    }) 
    export class NavComponent { 
     public name: string = "MR.Js"; 
    } 

here you can read how it works with css loader

ようなあなたのクラスでブートストラップを使用することができますworking example with bootstrap

+0

このcssローダーをangular-cli.iaで使用する方法をnode_modulesの私のブートストラップを参照することができません。 –

+0

私のNo.1ソリューションに似ています。 '.css'はロードされますが、' node_modules/bootstrap'ではなく 'src'フォルダからロードされます。ですから、 'package.json'と' npm install'のバージョンを更新すると、cssファイルは更新されません。 –

+0

私はangle2プロジェクトでブートストラップを実装していて、それがどのように動作するかを示すために私の答えを編集しました。それを試してみてください! –

0

多分このようにすることができます

import 'bootstrap'; 
import '!style-loader!css-loader!bootstrap/assets/css/bootstrap.min.css'; 

最初の 'import'は 'bootstrap'モジュールをインポートします(おそらくはbootstrap.jsを参照してください)。

2人目がcssをインポートすることがあります。

とあなたのwebpack.config.jsにあなたはWebPACKのを経由して、それを設定することができ、ローダ

0

を使用することができますが、これはあなたのwebpack.config.js(CSS-ローダー、スタイル・ローダーにローダーをインストールして追加する必要があります、url-loaders、file-loaders)、次にvendor.tsのbootstrap.min.cssファイルとbootstrapファイルをインポートします。

これはかなり冗長だと思います。 ではなく上記の、あなただけの単純(NPMを使用してなど)をインストールし、あなたのindex.htmlにスクリプト以下の1行(縮小さWebPACKのJSファイル)を追加することができ

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 
0

良い方法があるかもしれません、私はbowerを使って、ng2プロジェクトのcss関連のlibs(例えば、ブートストラップ、font-awesome)を処理しています。そして、NPMと亭をインストール

{ 
    "directory": "src/assets/lib", 
} 

:次のように(例えば)src/assets/lib

はにファイルを保存するために、あなたの.bowerrcを設定します。

npm install bower --save-dev

そしてあなたがブートストラップを取り付けることができます(あなたはバージョン番号を固定する場合と)あなたのbower.jsonファイルに追加する

bower install bootstrap --save

このソリューションについての素晴らしい事は亭があなたのためにすべての依存関係を扱うことである(例えば、それは自動的にあなたのlibディレクトリにjqueryのを追加します)

その後、手動ですでにとして、あなたのindex.htmlであなたのリンクを追加することができますやった: <link rel="stylesheet" href="./assets/lib/bootstrap/dist/css/bootstrap.min.css"/>

私は.gitignoresrc/assets/libフォルダを追加...およびデプロイ/インストールするために、私はbower installを実行します。

関連する問題