Skip to content

Instantly share code, notes, and snippets.

@sbalay
Last active February 1, 2016 16:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbalay/ec5f671bbefc84385929 to your computer and use it in GitHub Desktop.
Save sbalay/ec5f671bbefc84385929 to your computer and use it in GitHub Desktop.
js gulp task with config file
import gulp from 'gulp';
import uglify from 'gulp-uglify';
import eslint from 'gulp-eslint';
import babel from 'gulp-babel';
import concat from 'gulp-concat';
import sourcemaps from 'gulp-sourcemaps';
import gulpif from 'gulp-if';
import globalConfig from './config';
const localConfig = {
src: './src/js/**/*.js',
dest: './build/js/',
buildFileName: 'all.js'
};
gulp.task('js', () =>
gulp.src(localConfig.src)
.pipe(gulpif(globalConfig.development(), eslint()))
.pipe(gulpif(globalConfig.development(), eslint.format()))
.pipe(gulpif(globalConfig.development(), sourcemaps.init()))
.pipe(babel())
.pipe(gulpif(globalConfig.production(), concat(localConfig.buildFileName)))
.pipe(gulpif(globalConfig.production(), uglify()))
.pipe(gulpif(globalConfig.development(), sourcemaps.write()))
.pipe(gulp.dest(localConfig.dest))
);
gulp.task('build', ['js', 'css', 'vendor']);
gulp.task('build:production', ['set-production', 'js', 'css', 'vendor']);
gulp.task('set-production', () => {
globalConfig.environment = 'production';
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment