Skip to content

Instantly share code, notes, and snippets.

@lotsofcode
Created June 1, 2015 13:44
Show Gist options
  • Save lotsofcode/658734cc45b16b1aeae3 to your computer and use it in GitHub Desktop.
Save lotsofcode/658734cc45b16b1aeae3 to your computer and use it in GitHub Desktop.
Gulp browserify coffeescript
var gulp = require('gulp');
var util = require('gulp-util');
var concat = require('gulp-concat');
var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');
var header = require('gulp-header');
var rimraf = require('gulp-rimraf');
var pkg = require('./package.json');
var coffeeify = require('coffeeify');
var sourcemaps = require('gulp-sourcemaps');
var gbrowserify = require('gulp-browserify');
var hbsfy = require('hbsfy');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
gulp.task('javascripts', function () {
var banner = ['/**',
' * <%= pkg.name %>',
' * @version v<%= pkg.version %>',
' */',
''].join('\n');
// set up the browserify instance on a task basis
var b = browserify({
entries: './src/main.coffee',
debug: true,
extensions: ".coffee",
transform: [coffeeify, hbsfy]
});
return b.bundle()
.pipe(source(pkg.name + '-' + pkg.version + '.min.js'))
.pipe(buffer())
.pipe(header(banner, { pkg : pkg } ))
.pipe(sourcemaps.init({loadMaps: true}))
// Add transformation tasks to the pipeline here.
.pipe(gulpif(!util.env.dev, uglify()))
.on('error', util.log)
.pipe(sourcemaps.write('./'))
.pipe(header(banner, { pkg : pkg } ))
.pipe(gulp.dest('./dist/js/'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment