基本的なnpmコマンドを使用して足場を組んだMEANスタックプロジェクトがあります。現時点では、BootstrapはCDNを使用して含まれています。
link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css')
私の質問は、npmを使用してbootstrapを追加して、プロジェクトがCDNインクルージョンと同じように機能するようにする方法です。特に、
npm install bootstrap
boostrapディレクトリがnode_modules内に作成されます。ただし、そのディレクトリからbootstrap.cssを含めようとすると、グリフィコンフォントが壊れます。誰かがそれを行う方法についてアドバイスできますか?
追伸AngularJS自体についても同じ質問をします。
ブラウザパッケージマネージャーを使用できますbower
Bowerは、フロントエンドのパッケージ管理の問題に対する一般的で根拠のないソリューションを提供する一方で、より適切なビルドスタックで利用できるAPIを介してパッケージ依存モデルを公開します。システム全体の依存関係はなく、依存関係は異なるアプリ間で共有されておらず、依存関係ツリーはフラットです。
どちらがより良く、信頼できるかについてもっと知識が欲しいなら、これも読んでください link も。
NpmとBowerの主な違いは、パッケージの依存関係をインストールする方法です。 npmは各パッケージの依存関係を個別にインストールし、その結果、大きなパッケージ依存関係ツリー(node_modules/grunt/node_modules/glob/node_modules/...)
、同じパッケージの複数のバージョンが存在する可能性がある場合。クライアントサイドJavaScriptの場合、これは受け入れられません。jQueryまたは他のライブラリの2つの異なるバージョンをページに追加することはできません。 Bowerを使用すると、各パッケージが一度インストールされます(jQueryは常にbower_components/jquery
フォルダー、依存するパッケージの数に関係なく)、依存関係が競合する場合、Bowerは既にインストールされているパッケージと互換性のないパッケージをインストールしません。
Bowerのインストール
パッケージをインストールするだけです
構文
npm install -g bower
詳細については、Docを参照してください。
例:
ディレクトリ構造
project Folder
+ bower_components
+ bootstrap
+ dist
+ css
+ bootstrap.css
+ jquery
+ jquery.js
+ public
+ index.html
+ app.js
これで、app.jsに静的パスを設定できます
app.use(express.static(path.join(__dirname, 'bower_components')));
これで、index.htmlファイルで簡単に使用できます
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
<link rel='stylesheet' href='/bootstrap/dist/css/bootstrap.css' />
</head>
<body>
{{{ yield }}}
</body>
<script src="/bootstrap/dist/jquery/jquery.js"></script>
</html>
スクリーンショット