如何对使用coffeebar编译的文件发出命令

wil*_*idi 7 javascript exec minify spawn coffeescript

我希望能够在使用coffeebar 将我的coffeescript文件编译成js包含给定订单的文件时.

我想首先包含文件settings.coffee,constants.coffee

--
|-- settings.coffee
|-- constants.coffee
|-- page1.coffee
|-- page2.coffee
Run Code Online (Sandbox Code Playgroud)

代码片段

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 '----------------------------'
Run Code Online (Sandbox Code Playgroud)

现在,脚本只根据自己的逻辑编译整个事物.

我将不胜感激任何帮助.

daj*_*jnz 2

看起来你有 3 个潜在的解决方案,但它们都不是那么优雅:

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

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

  • 您可以使用额外的插件,例如rigger,将您需要的所有文件按所需顺序包含在一个根文件中,并使用 Coffeebar 处理该文件