如何给用coffeebar编译的文件下订单

How to give an Order to the files compiled with coffeebar

我希望能够在使用 coffeebar 将我的 coffeescript 文件编译成 js 时包含具有给定顺序的文件。

我想首先包含文件 settings.coffeeconstants.coffee

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

代码段

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 '----------------------------'

目前脚本只是根据自己的逻辑将整个事情编译在一起。

如有任何帮助,我将不胜感激。

您似乎有 3 个可能的解决方案,但都不是那么优雅:

  • 我不确定,但尝试将 coffeebar(inputPaths, [options]) 的 inputPaths 参数设置为带有文件名的显式路径数组,您可以在其中根据需要设置数组元素的顺序

  • 尝试重命名带有 num 前缀的文件,如 01_settiings.coffee 等,按照您需要的顺序,因此 coffeebar 将按此顺序处理它

  • 你可以使用额外的插件,比如rigger将你需要的所有文件按所需顺序包含在一个根文件中,然后用coffeebar处理这个文件