-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
54 lines (47 loc) · 1.37 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const gulp = require( 'gulp' );
const $ = require( 'gulp-load-plugins' )();
const pngquant = require( 'imagemin-pngquant' );
const webpack = require( 'webpack-stream' );
const webpackBundle = require( 'webpack' );
const named = require( 'vinyl-named' );
const { dumpSetting } = require( '@kunoichi/grab-deps' );
// グローバルフラグ
let plumber = true;
// エラーフラグを変更
gulp.task( 'noplumber', ( done ) => {
plumber = false;
done();
} );
// Package jsx.
gulp.task( 'js', function () {
let task = gulp.src( './assets/js/**/*.js' );
if ( plumber ) {
task = task.pipe( $.plumber( {
errorHandler: $.notify.onError( '<%= error.message %>' )
} ) );
}
return task
.pipe( named( ( file ) => {
return file.relative.replace(/\.[^\.]+$/, '');
} ) )
.pipe( webpack( require( './webpack.config.js' ), webpackBundle ) )
.pipe( gulp.dest( './dist/js' ) );
} );
// Image min
gulp.task( 'build:image', function () {
return gulp.src( './assets/img/**/*' )
.pipe( $.imagemin( {
progressive: true,
svgoPlugins: [ { removeViewBox: false } ],
use: [ pngquant() ]
} ) )
.pipe( gulp.dest( './dist/img' ) );
} );
// Dump wp-dependencies.json
gulp.task( 'dump', ( done ) => {
dumpSetting( 'dist' );
done();
} );
// Build commands.
gulp.task( 'build:js', gulp.series( 'noplumber', 'js' ) );
gulp.task( 'build', gulp.parallel( 'build:js', 'build:image' ) );