gulp.js
gulpを触ってみました
◯導入
- node.jsのインストール
- npmの準備
デスクトップにフォルダ「test」作成し、ターミナルでtestディレクトリ移動。その後
npm init
で質問に対してエンターを続ける。
- gulp.jsのインストール
npm install -g gulp
グローバルにインストール
npm install gulp --save-dev
ローカルにインスール
testディレクトリにpackage.jsonが勝手につくられます。
・gulpfile.jsの作成
testディレクトリにgulpfile.jsを作成
◯いじる
- プラグインの追加
gruntほどはないにせよプラグインが多くあり、基本的にそれらをインストールしてgulpfile.jsに対象ファイルなどを指定していく。
例えばjsを圧縮するgulp-uglifyは
npm install gulp-uglify --save-dev
とターミナルで打ちインストール。
testディレクトリに「node_modules」フォルダが追加され、その中に「gulp-uglify」ファイルができる
- gulpfile.jsの編集
gulp.task('js', function() {
gulp.src('./common/common.js')
.pipe(uglify())
.pipe(gulp.dest('./common/common.min.js'))
});
- gulp.task… でタスクの登録
- gulp.src… で読み込みファイルの指定
- .pipe… で処理を
- .pipe(gulp.dest で…出力
といった感じ
読み込みファイルは拡張子だけ指定など、minimatchというライブラリを使ったりしてもっとできる
- タスクを行う
上記のjs圧縮は
gulp js
「default」タスクを作れば
gulp
でいける
◯gulpfile.js
var gulp = require('gulp');
//プラグイン
var browserSync = require('browser-sync');
var plumber = require("gulp-plumber");
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
//ブラウザシンク
gulp.task(‘browser-sync’, function() {
browserSync({
server: {
baseDir: ’./’
,index : ‘index.html’
}
});
});
//ブラウザリロード
gulp.task(‘bs-reload’, function () {
browserSync.reload();
});
//sassコンパイル
gulp.task(‘sass’, function() {
gulp.src(’./sass/style.scss’)
.pipe(plumber())
.pipe(sass())
.pipe(autoprefixer())
.pipe(gulp.dest(’./’))
});
//js圧縮
gulp.task(‘js’, function() {
gulp.src(’./common/common.js’)
.pipe(plumber())
.pipe(uglify())
.pipe(concat(‘common.min.js’))
.pipe(gulp.dest(’./common’))
});
//デフォルトタスク $gulpで実行
gulp.task(‘default’, [‘browser-sync’], function () {
gulp.watch(’./index.html’,[‘bs-reload’]);
gulp.watch(’./sass/style.scss’,[‘sass’,‘bs-reload’]);
gulp.watch([’./common/common.js’,’./common/common.min.js’],[‘js’,‘bs-reload’]);
});
◯もっと
- 最終的に必要なファイルのみ抽出
- config.rbでsass設定
- gulpでSass/Compass – Qiita
- » gulp-autoprefixerよりもいい感じ。gulp-pleeeaseを使ってcssを処理しよう | isee ウェブに関するブログ
◯参考
主にLIGさんの参考にしました。