gulp
bootstrap4

gulpのメモ。ついでもbootstrap4も

More than 1 year has passed since last update.

※node.jsとnpmがインストールされていることが前提

1、package.jsonを作成する。

プロジェクトディレクトリに移動して

package.jsonを作成
mkdir testdir  // 「textdir」ディレクトリ作成
cd testdir     // 「textdir」ディレクトリに移動
npm init       // package.jsonを作成

npm init を入力すると色々質問されるが、何も入力せずとりあえずEnter!!
質問の回答がpackage.jsonの中身として反映される。
全部Enterを押してもdefaultの内容が入力される。
必要ならあとで書き換えれば良い。

全てEnterを押して作成されたpackage.json
{
  "name": "testdir", //ディレクトリの名前
  "version": "1.0.0", //バーション
  "description": "",  //詳細
  "main": "index.js",  
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

2、ローカルにgulpをインストール

ローカルにgulpをインストール
npm install --save-dev gulp

いちお下記も見ておいてください。

npm
npm install パッケージ名 --save
//package.json の dependencies に追記される。
//カレントディレクトリの node_modules 以下にパッケージがインストールされる

npm install パッケージ名 --save-dev
//package.json の devDependencies に追記される。
//カレントディレクトリの node_modules 以下にパッケージがインストールされる

3、gulpfile.jsを作成

gulpfile.jsを作成
touch gulpfile.js

4、実行してみる

デフォルトタスクに複数のタスクを定義してみる。

gulpfile.js
var gulp require('gulp'); //gulpパッケージを読み込む

gulp.task('test1',function(){
  console.log('タスク1');
});

gulp.task('test2',function(){
  console.log('タスク2');
});

gulp.task('test3',function(){
  console.log('タスク3');
});

実行その1

gulpfile.js
//guldfile.jsでさらに下記を追記
gulp.task('default',['test1','test2','test3']);
gulpコマンドだけで
gulp

それか、下記の形でも実行できる。

実行その2

実行
gulp タスク名

5、ファイルをコピーする

var gulp = require('gulp');

//タスクを定義
gulp.task('test4',function(){
  // gulp.srcでコピーしたいファイルを指定 
    //.pipeつなぐ
  // gulp.destでコピー先を指定
    gulp.src('src/example.js').pipe(gulp.dest('./'));
});

//先ほどのタスク(test4)をデフォルトタスクに登録
gulp.task('default',['test4']);

6、順番にタスクを実行したい

順番を指定
var gulp = require('gulp');

//コピーしたいタスクを定義
gulp.task('test5',function(){
    gulp.src('src/example.js').pipe(gulp.dest('.new/'));
});

//タスクの中にtest5タスクを登録して、test6タスクを定義
gulp.task('test6',['test5'],function(){
    console.log('コピー完了');
});

//test6タスクをデフォルトタスクに登録
gulp.task('default',['test6']);

7、sassのコンパイルをしたい

bootstrap4のsassファイルと、自分で記述したsassファイルをまとめてコンパイルしてみる。

bootstrap4をinstall
npm install bootstrap@4.0.0-alpha.6 -D
style.scssを作成
@import "node_modules/bootstrap/scss/bootstrap";
@import "style.scss"  /*自分で記述したscssファイル*/
styles.scssをコンパイル
var gulp = require('gulp');
var sass = require('gulp-sass'); // gulp-sassパッケージを読み込む


gulp.task("sass", function() {
    gulp.src("style.scss") //先ほどのstyle.cssを指定
        .pipe(sass())           // sassのコンパイル
        .pipe(gulp.dest("src")); //srcディレクトリの中にコンパイルされたcssが作成される
});

8、sassのコンパイルと一緒にベンダープレフィックスをつけて、圧縮(minify)もしたい

パッケージをインストール
npm install gulp-autoprefixer --save-dev #ベンダープレフィックスをつけてくれる
npm install gulp-clean-css --save-dev  #圧縮してくれる
styles.scssをコンパイル
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer'); //gulp-autoprefixer読み込み
let cleanCSS = require('gulp-clean-css'); //gulp-clean-css読み込み


gulp.task("sass", function() {
    gulp.src("dist/style.scss")
        .pipe(sass())
        .pipe(autoprefixer()) //ベンダープレフィックスをつける
        .pipe(cleanCSS({compatibility: 'ie8'})) //圧縮
        .pipe(gulp.dest("./src"));
});