Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fs = require 'fs'
- path = require 'path'
- source = require 'vinyl-source-stream'
- buffer = require 'vinyl-buffer'
- stream = require 'vinyl-to-stream'
- watchify = require 'watchify'
- browserify = require 'browserify'
- defaultOptions =
- extensions: ['.coffee']
- debug: true
- cache: {}
- packageCache: {}
- transform: ["coffeeify"]
- defaults = (target, def) ->
- for own key, val of def when not (key of target)
- target[key] = val
- target
- module.exports = (src, dest, getInstance = false, opts = {}) ->
- config = defaults(opts, defaultOptions)
- config.entries = [src]
- fileName = "#{path.basename(dest, '.coffee')}.js"
- log = console.log.bind(console, "watchify: #{src} -> #{dest}")
- b = watchify browserify config
- bundle = ->
- unless b
- b = watchify browserify config
- events()
- b.bundle()
- .on 'error', (err) ->
- console.error('watchify ', err.toString())
- this.emit('end')
- b = null
- .pipe source(fileName)
- .pipe buffer()
- .pipe stream()
- .pipe fs.createWriteStream(dest)
- events = ->
- b.on('update', bundle)
- b.on('log', log)
- events()
- return if getInstance then {b, bundle} else bundle
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement