yuheijotaki.com

2014/11/20 : 
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']);
});

 
 
 

◯もっと

 
 
 

◯参考
主にLIGさんの参考にしました。