Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to give an Order to the files compiled with coffeebar

I would like to be able to include the file with a given order while compiling my coffeescript files into js with coffeebar.

I would like to have the files settings.coffee, constants.coffee included first

--
|-- settings.coffee
|-- constants.coffee
|-- page1.coffee
|-- page2.coffee

Code Snippet

fs         = require 'fs'
{exec, spawn}     = require 'child_process'
util       = require 'util'

task 'watch', 'Coffee bar Combine and build', ->
    coffee = spawn 'coffeebar', ['-w','-o','./../js/main/kc.js', './']
    coffee.stdout.on 'data', (data) ->
      console.log data.toString().trim()
      invoke 'minify'

task 'minify', ' Minify JS File', ->
  file = "./../js/main/kc"
  util.log "Minifiying #{file}.js"
  exec "uglifyjs #{file}.js > #{file}.min.js", (err,stdout,stderr) ->
    if err
      util.log "Error minifiying file"
      util.log err
    else
      util.log "Minified to #{file}.min.js"
      util.log '----------------------------'

For now the script is only compiling the whole thing together according to its own logic.

I would appreciate any help on this.

like image 633
william.eyidi Avatar asked Jun 24 '15 17:06

william.eyidi


1 Answers

It seems like you have 3 potential solutions, but all of them not so elegant:

  • I'm not sure, but try to set inputPaths argument of coffeebar(inputPaths, [options]) as explicit array of paths with file names, where you can set order of array elements as you need

  • try to rename files with num prefixes like 01_settiings.coffee and so on, in order what you need, so coffeebar will process it in this order

  • you can use extra plugin, like rigger to include all files you need in desired sequence in one root file, and process this file with coffeebar

like image 138
dajnz Avatar answered Oct 02 '22 12:10

dajnz