eventric
Version:
Build JavaScript applications with Behaviour-driven Domain Design. Based on DDD, BDD, CQRS and EventSourcing.
48 lines (40 loc) • 1.42 kB
text/coffeescript
coffee = require 'gulp-coffee'
concat = require 'gulp-concat'
commonjs = require 'gulp-wrap-commonjs'
uglify = require 'gulp-uglify'
rimraf = require 'rimraf'
runSequence = require 'run-sequence'
mergeStream = require 'merge-stream'
module.exports = (gulp) ->
gulp.task 'build', (next) ->
runSequence 'build:clean', 'build:src', 'build:dist', next
gulp.task 'build:clean', (next) ->
rimraf './build', next
gulp.task 'build:src', ->
gulp.src(['index.coffee', '+(src)/**/*.coffee'])
.pipe(coffee({bare: true}))
.pipe(gulp.dest('build/node'))
gulp.task 'build:dist', ->
cjs = gulp.src('node_modules/commonjs-require/commonjs-require.js')
src = gulp.src('build/node/**/*.js')
.pipe(commonjs(
pathModifier: (path) ->
path = path.replace "#{process.cwd()}/build/node", 'eventric'
path = path.replace /.js$/, ''
return path
))
nm = gulp.src([
'node_modules/es6-promise/dist/promise-1.0.0.js'
])
.pipe(commonjs(
pathModifier: (filePath) ->
matches = filePath.match /(bower_components|node_modules)\/(.*?)\//
moduleName = matches[2]
moduleName
))
mergeStream cjs, src, nm
.pipe(concat('eventric.js'))
.pipe(gulp.dest('build/dist'))
.pipe(uglify())
.pipe(concat('eventric-min.js'))
.pipe(gulp.dest('build/dist'))