gulp config
npm install --save-dev gulp-config2
Easier to use
No longer have to write code, configuration only
import gconf from 'gulp-config2'
gconf({
'gulp-sass': {
src: 'src/**/*.*',
dest: 'public',
options: {}
}
})
Reuse your tasks
If you would like to write some task yourself, it can be exactly the same to the NPM modules
tasks/myTask.js
import through from 'through2'
export default function(options) {
return through.obj(function (chunk, enc, cb) {
cb(null, dealWithTheChunk(chunk, options))
})
})
gulpfile.js
gconf({
'myTask': {
task: './tasks/myTask',
src: 'src/**/*.*',
dest: 'public',
options: {}
}
})
Try to use src/dest/options through functions
Usage:
Add a built-in copy task, copy
clean
are ready to use.
gconf({
copy: {
src: 'src/**/*.*',
dest: 'public'
}
})
It's exactly the same to this gulp task:
gulp.task('copy', function () {
return gulp.src('src/**/*.*')
.pipe(gulp.dest('public'))
})
Add a task from a NPM module gulp-sass
gconf.load('gulp-mocha')
gconf({
'gulp-mocha': {
src: 'src/**/*.spec.js',
}
})
It's exactly the same to this gulp task:
gulp.task('gulp-mocha', function () {
return gulp.src('src/**/*.spec.js')
.pipe(require('gulp-mocha')())
})
Add a renamed tasks
gconf({
dest: 'public',
'custom-copy': {
task: './tasks/copy'
src: ['src/**/*.js'],
dest: 'dist',
},
'sass': {
task: 'gulp-sass',
src: ['src/sass/index.scss']
}
})
Config a task with multiple entries
gconf.load('copy')
gconf({
'copy': {
files: [{
src: ['src1/**/*.js'],
dest: 'dist1',
},{
src: ['src2/**/*.js'],
dest: 'dist2',
}]
}
})
Add a queue task
gconf.queue({
mirror: [
'clean',
'copy'
]
})
gconf({
mirror: {
'clean': {
src: [
'public/images',
'public/webfont',
]
},
'copy': [{
src: 'src/assets/images',
dest: 'public/images'
},{
src: 'node_modules/webfont/**/*.*',
dest: 'public/webfont'
}]
}
})
Add a pipeline task
gconf.pipelines({
css: ['gulp-sass', 'gulp-prefix']
})
gconf({
dest: 'public',
css: {
src: 'src/*.css',
dest: 'dist',
'gulp-sass': {
},
'gulp-prefix': {
}
}
})
It's exactly the same to this gulp task:
gulp.task('css', function () {
return gulp.src('src/*.css')
.pipe(require('gulp-sass')())
.pipe(require('gulp-prefix')())
.pipe(gulp.dest('public'))
})
Add multiple tasks
gconf
.load('copy', 'browserify', 'gulp-sass', 'gulp-autoprefixer', 'gulp-jshint')
gconf({
src: ['src/**/*.js'],
dest: 'dist',
'gulp-jshint': {
node: true
}
})
For complex and bigger projects
Create sub-project rules for special folders like:
src.project.myModule
gconf.project('project', {
default: 'myModule',
dest: 'public',
'project-copy': {
src: ''
}
})