6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gulp超入門 最新版のインストール〜SassとJSのタスク実行まで

6
Posted at

Gulp4で書き方が新しくなってたので備忘録ついでにまとめてみました。

インストール

ドキュメントのインストール手順通りにインストールします。

その前にnodeが正しくインストールされてるかチェックしておきます。

node --version
npm --version

gulp-cliをインストール

npm install --global gulp-cli

プロジェクトフォルダを作成し移動

mkdir my-project
cd my-project

package.jsonの作成、質問に対しては全てエンターキー押していけばOK
Gulpのローカルインストール、ローカルバージョンが出てればOK

npm init
npm install --save-dev gulp
gulp --version

Gulpfileを作成

プロジェクトフォルダにgulpfile.jsを作成

// my-project/gulpfile.js
// タスク
function defaultTask(cb) {
  // place code for your default task here
  cb();
}
function cssTask(cb) {
  console.log('css task');
  cb();
}

// タスクの定義、ここで定義したタスクをコマンドで使用できる
exports.default = defaultTask
exports.cssTask = cssTask

実行してみます

gulp

このような結果になってればOK

[14:12:02] Using gulpfile ~/my-project/gulpfile.js
[14:12:02] Starting 'default'...
[14:12:02] Finished 'default' after 3.73 ms

あとはタスクを書いてコマンドを実行するだけ

// defaultを実行
gulp

// 特定のタスクを実行
gulp cssTask

GulpでSassのコンパイルする方法

必要なプラグインを入れます。プラグイン検索ページで必要なプラグインを検索できます。

npm install --save-dev node-sass gulp-sass

次はタスクを作成。

タスクの書き方は.pipe()のなかにやりたいことを書いていく感じ。.pipe()は必要な分だけつなげることができる。

//my-project/gulpfile.js
const { src, dest } = require('gulp');
const sass = require('gulp-sass');
 
sass.compiler = require('node-sass');

function sassCompile(cb) {
  // 複数のファイルを指定する場合は配列使用可能
  return src(['./sass/theme.scss'])
    .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
    .pipe(dest('./css'));
}

exports.default = sassCompile

gulpでタスクを実行

// sass/theme.scss
$main: #333;
body {
  color: $main;
}

// css/theme.css
body{color:#333}

Gulpでjsのminify化とuglify化する方法

必要なプラグインを入れる

npm install --save-dev gulp-uglify gulp-rename

タスクを作る

const { src, dest } = require('gulp');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');
 
sass.compiler = require('node-sass');

function jsUglify(cb) {
  // 複数のファイルを指定する場合は配列使用可能
  return src(['./js/theme.js'])
    .pipe(uglify())
    .pipe(rename({extname: '.min.js'}))
    .pipe(dest('./js'));
}

exports.default = jsUglify

gulpでタスクを実行

// js/theme.js
function testFunction(param) {
  console.log('test ',param);
}

testFunction('OK');

// js/theme.min.js
function testFunction(t){console.log("test ",t)}testFunction("OK");

まとめ

v3と書き方が少し違うのでちょっと混乱しますね。あとgulp-sassとかのドキュメントも書き方が違うので脳内補完必須。

ここではseries()とかwatch()について触れてないので機会があれば付け足したいです。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?