gulp
v5.0.0
ストリーミングビルドシステム
クイックスタートガイドに従ってください。
https://github.com/orgs/gulpjs/projectsで、進行中および未解決のすべての問題についてご覧ください。
当社のウェブサイトでGetting GuideとAPIドキュメントをご覧ください!
私たちのほこりを許してください!他のすべてのドキュメントは、すべてが更新されるまで遅れます。何かが機能していない場合は問題を開いてください。
gulpfile.js
このファイルは、Gulpがしていることの味をあなたに与えます。
var gulp = require ( 'gulp' ) ;
var less = require ( 'gulp-less' ) ;
var babel = require ( 'gulp-babel' ) ;
var concat = require ( 'gulp-concat' ) ;
var uglify = require ( 'gulp-uglify' ) ;
var rename = require ( 'gulp-rename' ) ;
var cleanCSS = require ( 'gulp-clean-css' ) ;
var del = require ( 'del' ) ;
var paths = {
styles : {
src : 'src/styles/**/*.less' ,
dest : 'assets/styles/'
} ,
scripts : {
src : 'src/scripts/**/*.js' ,
dest : 'assets/scripts/'
}
} ;
/* Not all tasks need to use streams, a gulpfile is just another node program
* and you can use all packages available on npm, but it must return either a
* Promise, a Stream or take a callback and call it
*/
function clean ( ) {
// You can use multiple globbing patterns as you would with `gulp.src`,
// for example if you are using del 2.0 or above, return its promise
return del ( [ 'assets' ] ) ;
}
/*
* Define our tasks using plain functions
*/
function styles ( ) {
return gulp . src ( paths . styles . src )
. pipe ( less ( ) )
. pipe ( cleanCSS ( ) )
// pass in options to the stream
. pipe ( rename ( {
basename : 'main' ,
suffix : '.min'
} ) )
. pipe ( gulp . dest ( paths . styles . dest ) ) ;
}
function scripts ( ) {
return gulp . src ( paths . scripts . src , { sourcemaps : true } )
. pipe ( babel ( ) )
. pipe ( uglify ( ) )
. pipe ( concat ( 'main.min.js' ) )
. pipe ( gulp . dest ( paths . scripts . dest ) ) ;
}
function watch ( ) {
gulp . watch ( paths . scripts . src , scripts ) ;
gulp . watch ( paths . styles . src , styles ) ;
}
/*
* Specify if tasks run in series or parallel using `gulp.series` and `gulp.parallel`
*/
var build = gulp . series ( clean , gulp . parallel ( styles , scripts ) ) ;
/*
* You can use CommonJS `exports` module notation to declare tasks
*/
exports . clean = clean ;
exports . styles = styles ;
exports . scripts = scripts ;
exports . watch = watch ;
exports . build = build ;
/*
* Define default task that can be called by just running `gulp` from cli
*/
exports . default = build ;
Gulpは、ESMコードにロードされるラッパーを提供するため、gulpfileをgulpfile.mjs
または"type": "module"
でpackage.json
ファイルで指定することができます。
そして、これがESNEXTで書かれている上記の同じサンプルです。
import { src , dest , watch } from 'gulp' ;
import less from 'gulp-less' ;
import babel from 'gulp-babel' ;
import concat from 'gulp-concat' ;
import uglify from 'gulp-uglify' ;
import rename from 'gulp-rename' ;
import cleanCSS from 'gulp-clean-css' ;
import del from 'del' ;
const paths = {
styles : {
src : 'src/styles/**/*.less' ,
dest : 'assets/styles/'
} ,
scripts : {
src : 'src/scripts/**/*.js' ,
dest : 'assets/scripts/'
}
} ;
/*
* For small tasks you can export arrow functions
*/
export const clean = ( ) => del ( [ 'assets' ] ) ;
/*
* You can also declare named functions and export them as tasks
*/
export function styles ( ) {
return src ( paths . styles . src )
. pipe ( less ( ) )
. pipe ( cleanCSS ( ) )
// pass in options to the stream
. pipe ( rename ( {
basename : 'main' ,
suffix : '.min'
} ) )
. pipe ( dest ( paths . styles . dest ) ) ;
}
export function scripts ( ) {
return src ( paths . scripts . src , { sourcemaps : true } )
. pipe ( babel ( ) )
. pipe ( uglify ( ) )
. pipe ( concat ( 'main.min.js' ) )
. pipe ( dest ( paths . scripts . dest ) ) ;
}
/*
* You could even use `export as` to rename exported tasks
*/
function watchFiles ( ) {
watch ( paths . scripts . src , scripts ) ;
watch ( paths . styles . src , styles ) ;
}
export { watchFiles as watch } ;
const build = gulp . series ( clean , gulp . parallel ( styles , scripts ) ) ;
/*
* Export a default task
*/
export default build ;
gulp.src
関数を使用してタスクの実行since
で変更されていないファイルをフィルタリングするgulp.lastRun
ができます。
const paths = {
...
images : {
src : 'src/images/**/*.{jpg,jpeg,png}' ,
dest : 'build/img/'
}
}
function images ( ) {
return gulp . src ( paths . images . src , { since : gulp . lastRun ( images ) } )
. pipe ( imagemin ( ) )
. pipe ( gulp . dest ( paths . images . dest ) ) ;
}
function watch ( ) {
gulp . watch ( paths . images . src , images ) ;
}
タスクの実行時間はメモリに保存され、ガルプが出ると失われます。 watch
タスクimages
2回目の実行時にのみ時間を節約できます。
誰でもこのプロジェクトをより良くするのを手伝うことができます - 私たちの寄稿ガイドをチェックしてください!