From 69063d4d807e43434773cb3025a890bc3ba49f94 Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 30 Sep 2015 21:17:05 +0300 Subject: [PATCH] convert gulpfile into ES6+ --- gulpfile.js => gulpfile.babel.js | 89 +++++++++++++++----------------- package.json | 5 +- 2 files changed, 45 insertions(+), 49 deletions(-) rename gulpfile.js => gulpfile.babel.js (63%) diff --git a/gulpfile.js b/gulpfile.babel.js similarity index 63% rename from gulpfile.js rename to gulpfile.babel.js index 06a3e63..6819da4 100644 --- a/gulpfile.js +++ b/gulpfile.babel.js @@ -1,33 +1,28 @@ -/*eslint "no-var":0 */ -'use strict'; - -var browserify = require('browserify'); -var browserSync = require('browser-sync'); -var duration = require('gulp-duration'); -var gulp = require('gulp'); -var gutil = require('gulp-util'); -var jade = require('gulp-jade'); -var notifier = require('node-notifier'); -var path = require('path'); -var prefix = require('gulp-autoprefixer'); -var replace = require('gulp-replace'); -var rev = require('gulp-rev'); -var rimraf = require('rimraf'); -var source = require('vinyl-source-stream'); -var exorcist = require('exorcist'); -var transform = require('vinyl-transform'); -var sourcemaps = require('gulp-sourcemaps'); -var streamify = require('gulp-streamify'); -var stylus = require('gulp-stylus'); -var uglify = require('gulp-uglify'); -var watchify = require('watchify'); -var watch = require('gulp-watch'); -var inject = require('gulp-inject'); +import browserify from 'browserify'; +import browserSync from 'browser-sync'; +import duration from 'gulp-duration'; +import gulp from 'gulp'; +import gutil from 'gulp-util'; +import jade from 'gulp-jade'; +import notifier from 'node-notifier'; +import path from 'path'; +import prefix from 'gulp-autoprefixer'; +import rev from 'gulp-rev'; +import source from 'vinyl-source-stream'; +import exorcist from 'exorcist'; +import transform from 'vinyl-transform'; +import sourcemaps from 'gulp-sourcemaps'; +import streamify from 'gulp-streamify'; +import stylus from 'gulp-stylus'; +import uglify from 'gulp-uglify'; +import watchify from 'watchify'; +import watch from 'gulp-watch'; +import inject from 'gulp-inject'; /*eslint "no-process-env":0 */ -var production = process.env.NODE_ENV === 'production'; +const production = process.env.NODE_ENV === 'production'; -var config = { +const config = { source: './src', destination: './public', scripts: { @@ -57,7 +52,7 @@ var config = { } }; -var browserifyConfig = { +const browserifyConfig = { entries: [config.scripts.source], extensions: config.scripts.extensions, debug: !production, @@ -75,8 +70,8 @@ function handleError(err) { return this.emit('end'); } -gulp.task('scripts', function() { - var pipeline = browserify(browserifyConfig) +gulp.task('scripts', () => { + let pipeline = browserify(browserifyConfig) .bundle() .on('error', handleError) .pipe(source(config.scripts.filename)); @@ -86,18 +81,18 @@ gulp.task('scripts', function() { .pipe(streamify(uglify())) .pipe(streamify(rev())); } else { - pipeline = pipeline.pipe(transform(function() { - return exorcist(config.scripts.destination + config.scripts.filename + '.map'); - })) + pipeline = pipeline.pipe(transform(() => { + return exorcist(path.join(config.scripts.destination, config.scripts.filename) + '.map'); + })); } return pipeline.pipe(gulp.dest(config.scripts.destination)); }); -gulp.task('templates', production ? ['styles', 'scripts'] : [], function() { - var resources = gulp.src(config.inject.resources, {read: false}); +gulp.task('templates', production ? ['styles', 'scripts'] : [], () => { + const resources = gulp.src(config.inject.resources, {read: false}); - var pipeline = gulp.src(config.templates.source) + const pipeline = gulp.src(config.templates.source) .pipe(jade({ pretty: !production })) @@ -114,8 +109,8 @@ gulp.task('templates', production ? ['styles', 'scripts'] : [], function() { })); }); -gulp.task('styles', function() { - var pipeline = gulp.src(config.styles.source); +gulp.task('styles', () => { + let pipeline = gulp.src(config.styles.source); if(!production) { pipeline = pipeline.pipe(sourcemaps.init()); @@ -146,12 +141,12 @@ gulp.task('styles', function() { })); }); -gulp.task('assets', function() { +gulp.task('assets', () => { return gulp.src(config.assets.source) .pipe(gulp.dest(config.assets.destination)); }); -gulp.task('server', function() { +gulp.task('server', () => { return browserSync({ open: false, port: 9001, @@ -163,23 +158,23 @@ gulp.task('server', function() { }); }); -gulp.task('watch', function() { +gulp.task('watch', () => { - ['templates', 'styles', 'assets'].forEach(function(watched) { - watch(config[watched].watch, function() { + ['templates', 'styles', 'assets'].forEach((watched) => { + watch(config[watched].watch, () => { gulp.start(watched); }); }); - var bundle = watchify(browserify(browserifyConfig)); + const bundle = watchify(browserify(browserifyConfig)); - bundle.on('update', function() { - var build = bundle.bundle() + bundle.on('update', () => { + const build = bundle.bundle() .on('error', handleError) .pipe(source(config.scripts.filename)); build - .pipe(transform(function() { + .pipe(transform(() => { return exorcist(config.scripts.destination + config.scripts.filename + '.map'); })) .pipe(gulp.dest(config.scripts.destination)) diff --git a/package.json b/package.json index c61da43..4db7cc3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "lodash": "^3.9.1" }, "devDependencies": { - "babel": "^5.6.14", + "babel": "^5.8.23", + "babel-core": "^5.8.25", "babel-eslint": "^4.1.3", "babelify": "^6.1.1", "browser-sync": "^2.9.4", @@ -29,7 +30,7 @@ "eslint-config-airbnb": "0.0.9", "eslint-plugin-react": "^3.4.2", "exorcist": "^0.4.0", - "gulp": "~3.8.1", + "gulp": "3.9.0", "gulp-autoprefixer": "1.0.1", "gulp-duration": "0.0.0", "gulp-inject": "^3.0.0",