Gulp
表示
はじめに
[編集]Gulpとは
[編集]Gulpは、ウェブ開発におけるタスク自動化ツールで、反復的な作業を効率化するためのストリーミングビルドシステムです。JavaScript(Node.js)ベースのツールで、ファイルの変換、最適化、リロードなどの処理を自動化できます。
インストールと基本セットアップ
[編集]グローバルおよびローカルインストール
[編集]Gulpをプロジェクトにインストールするには、以下のコマンドを実行します:
# グローバルCLIのインストール npm install -g gulp-cli # プロジェクト内のローカルインストール npm install gulp --save-dev
初期設定
[編集]プロジェクトルートに gulpfile.js を作成し、基本的なタスクを定義します:
- gulpfile.js
const gulp = require('gulp'); // 簡単なタスクの定義 gulp.task('default', function(done) { console.log('Gulpタスクが実行されました'); done(); });
中核的な概念
[編集]タスク定義
[編集]Gulpではタスクを簡単に定義できます:
// 同期タスク gulp.task('sync-task', function() { return gulp.src('src/*.js') .pipe(gulp.dest('dist/')); }); // 非同期タスク gulp.task('async-task', function(done) { // 非同期処理 setTimeout(function() { console.log('非同期タスク完了'); done(); }, 1000); });
ストリーム処理
[編集]Gulpの特徴的な機能であるストリーム処理:
const uglify = require('gulp-uglify'); const concat = require('gulp-concat'); gulp.task('scripts', function() { return gulp.src('src/**/*.js') .pipe(concat('all.js')) // ファイル結合 .pipe(uglify()) // JavaScript圧縮 .pipe(gulp.dest('dist/')); // 出力 });
主要プラグイン
[編集]よく使われるGulpプラグイン
[編集]- gulp-sass: Sassのコンパイル
- gulp-uglify: JavaScriptの圧縮
- gulp-concat: ファイルの結合
- browser-sync: ブラウザ自動リロード
プラグインの使用例
[編集]const sass = require('gulp-sass')(require('sass')); const browserSync = require('browser-sync').create(); gulp.task('sass', function() { return gulp.src('src/scss/**/*.scss') .pipe(sass().on('error', sass.logError)) .pipe(gulp.dest('dist/css')) .pipe(browserSync.stream()); });
ウォッチタスク
[編集]ファイル変更の監視
[編集]ファイルの変更を自動的に検出し、対応するタスクを実行:
gulp.task('watch', function() { gulp.watch('src/scss/**/*.scss', gulp.series('sass')); gulp.watch('src/js/**/*.js', gulp.series('scripts')); });
高度な設定
[編集]モダンな設定方法
[編集]Gulp 4.x以降の推奨される記述方法:
const { src, dest, series, parallel } = require('gulp'); function cleanTask() { return del(['dist']); } function stylesTask() { return src('src/styles/**/*.css') .pipe(concat('styles.css')) .pipe(dest('dist/css')); } exports.default = series(cleanTask, stylesTask); exports.dev = parallel(stylesTask, watchTask);
トラブルシューティング
[編集]一般的な問題と解決策
[編集]- 依存関係エラー: Node.jsとnpmのバージョンを確認
- プラグインの互換性: 最新のGulpバージョンに対応したプラグインを使用
- パフォーマンス: 不要なプラグインを削除し、タスクを最適化
結論
[編集]Gulpは強力で柔軟なタスク自動化ツールです。学習曲線は緩やかで、ウェブ開発のワークフローを大幅に改善できます。継続的な学習と実践をおすすめします。
参考リソース
[編集]- 公式ドキュメント: https://gulpjs.com/
- プラグインリポジトリ: https://gulpjs.com/plugins/