diff --git a/gulpfile.js b/gulpfile.js index 8cb3761e..005d26a5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,39 +1,37 @@ -var gulp = require('gulp'), - babel = require('gulp-babel'), - diff = require('gulp-diff'), - notify = require('gulp-notify'), - sass = require('gulp-sass'), - sourcemaps = require('gulp-sourcemaps'), - uglify = require('gulp-uglify'); - gulpUtil = require('gulp-util'), - browserify = require('browserify'), - babelify = require('babelify'), - watchify = require('watchify'), - source = require('vinyl-source-stream'), - buffer = require('vinyl-buffer'), - path = require('path'), - glob = require('glob'), - eventStream = require('event-stream'), - semver = require('semver'), - packageJson = require('./package.json'); - -var isDev = typeof process.env.npm_config_development !== 'undefined'; - -var PATHS = { - MODULES: './node_modules', - CMS_JAVASCRIPT_SRC: './javascript/src', - CMS_JAVASCRIPT_DIST: './javascript/dist', - CMS_SCSS: './scss', - CMS_CSS: './css' -}; +const gulp = require('gulp'); +const babel = require('gulp-babel'); +const notify = require('gulp-notify'); +const sass = require('gulp-sass'); +const sourcemaps = require('gulp-sourcemaps'); +const uglify = require('gulp-uglify'); +const gulpUtil = require('gulp-util'); +const browserify = require('browserify'); +const babelify = require('babelify'); +const watchify = require('watchify'); +const source = require('vinyl-source-stream'); +const buffer = require('vinyl-buffer'); +const path = require('path'); +const glob = require('glob'); +const eventStream = require('event-stream'); +const semver = require('semver'); +const packageJson = require('./package.json'); +const isDev = typeof process.env.npm_config_development !== 'undefined'; process.env.NODE_ENV = isDev ? 'development' : 'production'; -var babelifyOptions = { - presets: ['es2015', 'es2015-ie', 'react'], - plugins: ['transform-object-assign'], - ignore: /(node_modules|thirdparty)/, - comments: false +const PATHS = { + MODULES: './node_modules', + CMS_JAVASCRIPT_SRC: './javascript/src', + CMS_JAVASCRIPT_DIST: './javascript/dist', + CMS_SCSS: './scss', + CMS_CSS: './css', +}; + +const babelifyOptions = { + presets: ['es2015', 'es2015-ie', 'react'], + plugins: ['transform-object-assign'], + ignore: /(node_modules|thirdparty)/, + comments: false, }; const browserifyOptions = {}; @@ -52,76 +50,83 @@ if (isDev) { * @return object */ function transformToUmd(files, dest) { - return eventStream.merge(files.map(function (file) { - return gulp.src(file) - .pipe(babel({ - presets: ['es2015'], - moduleId: 'ss.' + path.parse(file).name, - plugins: ['transform-es2015-modules-umd'], - comments: false - })) - .on('error', notify.onError({ - message: 'Error: <%= error.message %>', - })) - .pipe(gulp.dest(dest)); - })); + return eventStream.merge(files.map((file) => { // eslint-disable-line arrow-body-style + return gulp.src(file) + .pipe(babel({ + presets: ['es2015'], + moduleId: `ss.${path.parse(file).name}`, + plugins: ['transform-es2015-modules-umd'], + comments: false, + })) + .on('error', notify.onError({ + message: 'Error: <%= error.message %>', + })) + .pipe(gulp.dest(dest)); + })); } // Make sure the version of Node being used is valid. if (!semver.satisfies(process.versions.node, packageJson.engines.node)) { - console.error('Invalid Node.js version. You need to be using ' + packageJson.engines.node + '. If you want to manage multiple Node.js versions try https://github.com/creationix/nvm'); - process.exit(1); + console.error( // eslint-disable-line no-console + `Invalid Node.js version. You need to be using ${packageJson.engines.node}` + + '. If you want to manage multiple Node.js versions try https://github.com/creationix/nvm' + ); + process.exit(1); } gulp.task('build', ['umd-cms', 'umd-watch', 'bundle-legacy']); gulp.task('bundle-legacy', function bundleLeftAndMain() { - var bundleFileName = 'bundle-legacy.js'; + const bundleFileName = 'bundle-legacy.js'; - return browserify(Object.assign({}, browserifyOptions, { entries: PATHS.CMS_JAVASCRIPT_SRC + '/bundles/legacy.js' })) - .on('update', bundleLeftAndMain) - .on('log', function (msg) { gulpUtil.log('Finished', 'bundled ' + bundleFileName + ' ' + msg) }) - .transform('babelify', babelifyOptions) - .external('jQuery') - .external('i18n') - .external('router') - .bundle() - .on('error', notify.onError({ message: bundleFileName + ': <%= error.message %>' })) - .pipe(source(bundleFileName)) - .pipe(buffer()) - .pipe(sourcemaps.init({ loadMaps: true })) - .pipe(uglify()) - .pipe(sourcemaps.write('./')) - .pipe(gulp.dest(PATHS.CMS_JAVASCRIPT_DIST)); + return browserify(Object.assign( + {}, + browserifyOptions, + { entries: `${PATHS.CMS_JAVASCRIPT_SRC}/bundles/legacy.js` }) + ) + .on('update', bundleLeftAndMain) + .on('log', (msg) => gulpUtil.log('Finished', `bundled ${bundleFileName} ${msg}`)) + .transform(babelify, babelifyOptions) + .external('jQuery') + .external('i18n') + .external('router') + .bundle() + .on('error', notify.onError({ message: `${bundleFileName}: <%= error.message %>` })) + .pipe(source(bundleFileName)) + .pipe(buffer()) + .pipe(sourcemaps.init({ loadMaps: true })) + .pipe(uglify()) + .pipe(sourcemaps.write('./')) + .pipe(gulp.dest(PATHS.CMS_JAVASCRIPT_DIST)); }); -gulp.task('umd-cms', function () { - return transformToUmd(glob.sync(PATHS.CMS_JAVASCRIPT_SRC + '/*.js'), PATHS.CMS_JAVASCRIPT_DIST); +gulp.task('umd-cms', () => { // eslint-disable-line + return transformToUmd(glob.sync(`${PATHS.CMS_JAVASCRIPT_SRC}/*.js`), PATHS.CMS_JAVASCRIPT_DIST); }); -gulp.task('umd-watch', function () { - if (isDev) { - gulp.watch(PATHS.CMS_JAVASCRIPT_SRC + '/*.js', ['umd-cms']); - } -}); - -gulp.task('css', ['compile:css'], function () { +gulp.task('umd-watch', () => { // eslint-disable-line if (isDev) { - gulp.watch(PATHS.CMS_SCSS + '/**/*.scss', ['compile:css']); - gulp.watch(CMS_JAVASCRIPT_SRC + '/**/*.scss', ['compile:css']); + gulp.watch(`${PATHS.CMS_JAVASCRIPT_SRC}/*.js`, ['umd-cms']); } -}) - -gulp.task('compile:css', function () { - var outputStyle = isDev ? 'expanded' : 'compressed'; - - return gulp.src(PATHS.CMS_SCSS + '/**/*.scss') - .pipe(sourcemaps.init()) - .pipe(sass({ outputStyle: outputStyle }) - .on('error', notify.onError({ - message: 'Error: <%= error.message %>' - })) - ) - .pipe(sourcemaps.write()) - .pipe(gulp.dest(PATHS.CMS_CSS)) +}); + +gulp.task('css', ['compile:css'], () => { // eslint-disable-line + if (isDev) { + gulp.watch(`${PATHS.CMS_SCSS}/**/*.scss`, ['compile:css']); + gulp.watch(`${PATHS.CMS_JAVASCRIPT_SRC}/**/*.scss`, ['compile:css']); + } +}); + +gulp.task('compile:css', () => { // eslint-disable-line + const outputStyle = isDev ? 'expanded' : 'compressed'; + + return gulp.src(`${PATHS.CMS_SCSS}/**/*.scss`) + .pipe(sourcemaps.init()) + .pipe(sass({ outputStyle }) + .on('error', notify.onError({ + message: 'Error: <%= error.message %>', + })) + ) + .pipe(sourcemaps.write()) + .pipe(gulp.dest(PATHS.CMS_CSS)); });