1.0.0-rc • Published 9 years ago

gulp-config2 v1.0.0-rc

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

#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',
    // some options
  }
})

It's exactly the same to this gulp task:

gulp.task('gulp-mocha', function () {
  return gulp.src('src/**/*.spec.js')
    .pipe(require('gulp-mocha')(/*some options*/))
})

###Add a renamed tasks

gconf({
  dest: 'public',
  'custom-copy': {
    task: './tasks/copy'
    src: ['src/**/*.js'],
    dest: 'dist',//overwrote the global dest
  },
  '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', //otherwise use the global dest
    'gulp-sass': {
      // options
    },
    'gulp-prefix': {
      // options
    }
  }
})

It's exactly the same to this gulp task:

gulp.task('css', function () {
  return gulp.src('src/*.css')
    .pipe(require('gulp-sass')(/*sometions*/))
    .pipe(require('gulp-prefix')(/*sometions*/))
    .pipe(gulp.dest('public'))
})

###Add multiple tasks

gconf
.load('copy', 'browserify', 'gulp-sass', 'gulp-autoprefixer', 'gulp-jshint')

gconf({
  src: ['src/**/*.js'], //for simple projects
  dest: 'dist', //for simple projects
  'gulp-jshint': {
    node: true
  }
})

###For complex and bigger projects Create sub-project rules for special folders like: src.project.myModule

// TODO
gconf.project('project', {
  default: 'myModule',
  //src: src.project.myModule,
  dest: 'public',
  'project-copy': {
    src: ''
  }
})
1.0.0-rc

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.10

9 years ago

0.1.9

9 years ago

0.1.8

9 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago