1.0.0-rc • Published 10 years ago

gulp-config2 v1.0.0-rc

Weekly downloads
1
License
MIT
Repository
github
Last release
10 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

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.10

10 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago