ES6でGulpを書きたかったから試した


最近Node.jsの勉強をしていて、その一環でGulpを使うことがありました
個人的にES6が好きなのでGulpをES6で書けないかな〜
と思ったらあっさり動きました
メモがてらQiitaに初挑戦

こちらを参考にしました
ちなみに私はGulpは理解していますがBabelは理解してません
Babel使います

前提

npmとgulpのバージョンは以下の通りです

$ npm -v
6.4.1
$ npx gulp -v
CLI version 3.9.0
Local version 3.9.0

なんか3.9.1だとFailed to load external module @babel/registerと怒られてしまうので、npm i [email protected] -Dとバージョンを明示してインストールしました
3.9.1で上記のエラーの解決方法をご存じの方がいらっしゃったら教えてください

下準備

まずはプロジェクトを作成しましょう

$ mkdir hoge
$ cd ./hoge
$ npm init -y

続いてモジュールのインストール
GulpとBabelを入れます
今回はとりあえず文字列を表示することを目標としますので
それ以外は何も入れません

$ npm install gulp babel-core babel-preset-es2015 -D

Babelの設定

次にBabelの設定
Babelに関しては何も知らないので
これを設定と言っていいのかわかりませんが
rcがついているので設定ファイルでしょう(適当)

.babelrcを作って、そこにES6を使う旨を記入します

.babelrc
{
    "presets": ["es2015"]
}

Gulpfileの作成

では本題のGulpfileを作成します
gulpfile.jsではなく、gulpfile.babel.jsであるところに注意
ここを忘れてて動かないっていう記事をどっかで読んだ気がします

gulpfile.babel.js
'use strict';

import gulp from 'gulp';

const hoge = "hogehoge";

gulp.task("default", () => {
    console.log(hoge);
});

納得のいくGulpfileが書けました
では実行

npx gulp
[16:15:37] Requiring external module babel-core/register
[16:15:37] Using gulpfile ~/test-gulp-es6/gulpfile.babel.js
[16:15:37] Starting 'default'...
hogehoge
[16:15:37] Finished 'default' after 155 μs

無事実行もできました♡

昨日今日で身につけた知識で書いているので、もし間違えがあれば教えてください