私が考える唯一の解決策は、ビルド スクリプト内でコンパイル順序を手動で作成することです。ファイル名を使用して順序付きコレクションを作成すると、ループが繰り返されて新しい大きな文字列が連結され、1 つのファイルとしてコンパイルできるようになります。
次の内容で Cakefile を作成し、最初に構文を確認します。で実行しcake build
ます。Cake には CoffeeScript が付属しています。
fs = require 'fs'
{exec} = require 'child_process'
viewsDir = "src/view"
coffeeFiles = [
'B'
'A'
]
task 'build'
# loops through coffeeFiles.
for file, index in coffeeFiles then do (file, index) ->
fs.readFile "#{viewsDir}/#{file}", 'utf8', (err, content) ->
appCoffee[index] = content
compile() if --remaining is 0
compile = ->
fs.writeFile 'js/app.coffee', appCoffee.join('\n\n'), 'utf8', (err) ->
throw err if err
exec 'coffee --compile js/app.coffee', (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
# you can skip deleting the app.coffee file
fs.unlink 'js/app.coffee', (err) ->
throw err if err
console.log 'Created app.coffe, compiled to app.js and removes app.coffee'
# maybe additional taks
# invoke 'test'
Coffeescript の Wiki にも記載されています https://github.com/jashkenas/coffee-script/wiki/[HowTo]-Compiling-and-Setting-Up-Build-Tools
最初のループの前に、別のディレクトリをループさせることもできます。そして、リストされていない他のファイルの前に処理されるファイル名を coffeeFiles にリストするだけで、残りは fs.readDir() でリストに追加できます。