From 6eaa314e825713aff7dfdf90a4d7652295c07bda Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 20 May 2015 23:13:01 +0300 Subject: [PATCH] Refactoring * Removed needless dependencies * All functionality should be like earlier --- gulpfile.coffee | 86 ++++++++++++++++++++----------------------------- package.json | 11 +++---- 2 files changed, 39 insertions(+), 58 deletions(-) diff --git a/gulpfile.coffee b/gulpfile.coffee index d7e2128..3e293e3 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -1,16 +1,13 @@ browserify = require 'browserify' browserSync = require 'browser-sync' -chalk = require 'chalk' -CSSmin = require 'gulp-minify-css' +duration = require 'gulp-duration' ecstatic = require 'ecstatic' -filter = require 'gulp-filter' gulp = require 'gulp' gutil = require 'gulp-util' jade = require 'gulp-jade' notify = require 'gulp-notify' path = require 'path' prefix = require 'gulp-autoprefixer' -prettyTime = require 'pretty-hrtime' source = require 'vinyl-source-stream' sourcemaps = require 'gulp-sourcemaps' streamify = require 'gulp-streamify' @@ -18,7 +15,7 @@ stylus = require 'gulp-stylus' uglify = require 'gulp-uglify' watchify = require 'watchify' -production = process.env.NODE_ENV is 'production' +production = process.env.NODE_ENV is 'production' config = scripts: @@ -39,60 +36,57 @@ config = watch: './src/assets/**/*.*' destination: './public/' +browserifyConfig = + entries: [config.scripts.source] + extensions: config.scripts.extensions + debug: not production + cache: {} + packageCache: {} + handleError = (err) -> gutil.log err gutil.beep() + notify - .onError title: 'Compile Error', message: '<%= error.message %>' - .apply this, Array::slice.call(arguments) + title: 'Compile Error' + message: err.message + this.emit 'end' gulp.task 'scripts', -> - - bundle = browserify - entries: [config.scripts.source] - extensions: config.scripts.extensions - debug: not production - - build = bundle.bundle() + pipeline = browserify(browserifyConfig) + .bundle() .on 'error', handleError .pipe source config.scripts.filename - build.pipe(streamify(uglify())) if production + pipeline = build.pipe(streamify(uglify())) if production - build - .pipe gulp.dest config.scripts.destination + pipeline.pipe gulp.dest config.scripts.destination gulp.task 'templates', -> pipeline = gulp .src config.templates.source - .pipe(jade(pretty: not production)) + .pipe jade pretty: not production .on 'error', handleError .pipe gulp.dest config.templates.destination - pipeline = pipeline.pipe browserSync.reload(stream: true) unless production - - pipeline + if production then pipeline else pipeline.pipe browserSync.reload(stream: true) gulp.task 'styles', -> - styles = gulp.src config.styles.source - styles = styles.pipe(sourcemaps.init()) unless production - styles = styles.pipe stylus - 'include css': true + pipeline = gulp.src config.styles.source - .on 'error', handleError - .pipe prefix 'last 2 versions', 'Chrome 34', 'Firefox 28', 'iOS 7' + pipeline = pipeline.pipe(sourcemaps.init()) unless production - styles = styles.pipe(CSSmin()) if production - styles = styles.pipe(sourcemaps.write '.') unless production - styles = styles.pipe gulp.dest config.styles.destination + pipeline = pipeline.pipe stylus + 'include css': true + compress: production + .on 'error', handleError + .pipe prefix 'last 2 versions', 'Chrome 34', 'Firefox 28', 'iOS 7' - unless production - styles = styles - .pipe filter '**/*.css' - .pipe browserSync.reload(stream: true) + pipeline = pipeline.pipe(sourcemaps.write '.') unless production + pipeline = pipeline.pipe gulp.dest config.styles.destination - styles + if production then pipeline else pipeline.pipe browserSync.stream match: '**/*.css' gulp.task 'assets', -> gulp @@ -111,31 +105,21 @@ gulp.task 'watch', -> gulp.watch config.styles.watch, ['styles'] gulp.watch config.assets.watch, ['assets'] - bundle = watchify browserify - entries: [config.scripts.source] - extensions: config.scripts.extensions - debug: not production - cache: {} - packageCache: {} - fullPaths: true + bundle = watchify browserify browserifyConfig bundle.on 'update', -> - gutil.log "Starting '#{chalk.cyan 'rebundle'}'..." - start = process.hrtime() build = bundle.bundle() .on 'error', handleError .pipe source config.scripts.filename build .pipe gulp.dest config.scripts.destination + .pipe(duration('Rebundling browserify bundle')) .pipe(browserSync.reload(stream: true)) - gutil.log "Finished '#{chalk.cyan 'rebundle'}' after #{chalk.magenta prettyTime process.hrtime start}" - .emit 'update' -gulp.task 'no-js', ['templates', 'styles', 'assets'] -gulp.task 'build', ['scripts', 'no-js'] -# scripts and watch conflict and will produce invalid js upon first run -# which is why the no-js task exists. -gulp.task 'default', ['watch', 'no-js', 'server'] +buildTasks = ['templates', 'styles', 'assets'] + +gulp.task 'build', buildTasks.concat ['scripts'] +gulp.task 'default', buildTasks.concat ['watch', 'server'] diff --git a/package.json b/package.json index 31a7460..975caa2 100644 --- a/package.json +++ b/package.json @@ -20,18 +20,16 @@ }, "devDependencies": { "bower": "~1.3.5", - "browser-sync": "~2.2.2", - "browserify": "~6.1.0", - "chalk": "~0.5.1", + "browser-sync": "^2.7.2", + "browserify": "^10.2.1", "coffeeify": "~0.7.0", "deamdify": "^0.1.1", "debowerify": "~0.9.1", "ecstatic": "~0.5.3", "gulp": "~3.8.1", "gulp-autoprefixer": "1.0.1", - "gulp-filter": "^2.0.2", + "gulp-duration": "0.0.0", "gulp-jade": "~0.9.0", - "gulp-minify-css": "~0.3.5", "gulp-notify": "^2.2.0", "gulp-sourcemaps": "^1.3.0", "gulp-streamify": "0.0.5", @@ -43,9 +41,8 @@ "karma-cli": "0.0.4", "karma-coffee-preprocessor": "~0.2.1", "karma-jasmine": "~0.2.2", - "pretty-hrtime": "~0.2.2", "vinyl-source-stream": "~1.0.0", - "watchify": "~2.3.0" + "watchify": "^3.2.1" }, "browserify": { "transform": [