2012-03-11 7 views
0

私は2つのファイルを持っています。 ./main.coffeeおよび./shared.coffee。私は両方をコンパイルするためにmakefileを使用して、./main.jsにconcatinateしたいと思います。makefileを使ってcoffeescriptからコンパイルした後にjavascriptファイルをマージする

これは私が現在持っているものです。

public: main.min.js 


main.min.js: main.js 
uglifyjs ./main.js > ./main.min.js 

#combine the shared files with the compiled main.coffee 
main.js: ./main.coffee 
coffee -c ./main.coffee #problem1 
cat ./main.js ./shared.js > ./main.js 

shared: ./shared.coffee 
coffee -c ./shared.coffee 

私はこれがcatオペレータのためにエラーになります知っています。 problem1と書かれた行の内容をコンパイルしてcatメソッドに渡すには、main.jsを生成しないでください。

たとえば、 coffeescriptサイトではこれを与えました:Pipe in CoffeeScript to STDIN and get back JavaScript over STDOUT. Good for use with processes written in other languages. An example: cat src/cake.coffee | coffee -scこのメソッドをcatと組み合わせてファイルをマージするにはどうしたらいいですか? coffee --joinを使用して

+1

[coffee - join](http://jashkenas.github.com/coffee-script/#usage)を参照してください。 –

答えて

1

main.js: 
coffee -c -j main.js main.coffee shared.coffee 

を編集:トレバー・バーナムが指摘したように、これはアスカーが望んでいたものとまったく同じではありません。

最初のマージのmain.coffee --joinとshared.coffeeを作成し、マージしたソースをコンパイルします。これは、スコープの分離を取得しないことを意味します。

+0

これはaskerが望んでいたものと実際は異なっています。 '--join'はまず' main.coffee'と 'shared.coffee'をマージし、マージしたソースをコンパイルします。これは、スコープの分離を取得しないことを意味します。 –

+0

Trevor:この注意書きを答えに加えて真。 –

関連する問題