JavaScriptを1ファイルでまとめて読み込める方法が分かったので(参考リンク npmでのJSライブラリインストール)、CSSでも似たような方法があったのでメモ。
流れを言うと、下記のようになります。
- npm コマンドでcssフレームワークを読み込み
- 自分で@importを記述し、npmで読み込んだファイルを読み込み(sassでコンパイルするのが一般的なようです。)
bulmaというcssを上記の方法で読み込んだので実例をメモします。
1 |
npm install bulma -D |
ファイル構成
|――node_modules (ここにインストールされています。)
|
bulma ─ css (ここに実際に使うcssを吐き出します。)
└── sass
├── main.sass
└── mystyle.scss
main.sass (コンパイルされる予定のsass)
1 2 |
@import "node_modules/bulma/bulma.sass"; @import "mystyle"; |
mystyle.scss(オリジナルのcss)
1 2 3 4 5 |
div.hogehoge{ .hogehoge2{ font-size:10pt; } } |
gulpfile.js
1 2 3 4 5 6 7 8 9 10 11 12 |
var gulp = require('gulp'); var less = require('gulp-less'); var gulp_sass = require('gulp-sass'); gulp.task('original_compile',function(){ return gulp.src(['bulma/sass/main.sass']) //ここをcompressedだと圧縮してcssがはかれます。 //outputStyle: 'expanded'にすると通常のcssがはかれます。 .pipe(gulp_sass({outputStyle: 'compressed'})) .pipe(gulp.dest('bulma/css')); }); |
もちろんpackage.jsonでもOKです。
あとは下記コマンドを実行すればcss直下のディレクトリにフレームワークのcssとオリジナルのcssがまとめてはかれます。
1 |
npm run original_compile |
ちなみにcssフレームワークは読み込み前に定義しておけば、内部のパラメーターを変更できたり、cssフレームワーク内のクラスをさらに拡張したりすることができたりします。
*bulmaはできましたが、恐らく他のフレームワークでも同じかと思います。
1 2 3 4 5 6 7 8 9 |
//ここにcssフレームワークの変数を設定する記述をかく。例えば下記 $table_width:350px; @import "node_modules/bulma/bulma.sass" //ここにcssフレームワークのクラスを元に拡張させるような処理をかく .new_class{ @extends(.cssフレームワークの何らかのクラス) } |
参考リンク
Bootstrap 4 のビルドツールは npm-scripts で決まり