22

コーヒースクリプトをJSに自動的に再コンパイルする最も簡単な方法を探しています。

ドキュメントを読んでいますが、必要なものを正確に取得するのにまだ問題があります。

src/ファイルの変更がないかフォルダを監視*.coffeeし、それらを連結されたjavascriptファイルにコンパイルしてlib/something.js.

どういうわけか、監視、コンパイル、および連結を組み合わせることができません。:/

4

11 に答える 11

21

Coffee Scriptのドキュメントには、この例が記載されています。

ファイルの変更を監視し、ファイルが保存されるたびに再コンパイルします。

coffee --watch --compile experimental.coffee

実行したい特定のスクリプトがある場合は、Linuxコマンドdnotifyを使用できます:http: //linux.die.net/man/1/dnotify

dnotify --all src/ --execute=command

編集:-dnotifyのexecute部分にいくつかの問題がありました-バグかもしれませんが、これは私が働いたものです:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee`

これにより、ファイルが変更されるたびにコンパイルコマンドが実行されました。

次のように、コマンドにアンパサンドを追加した場合:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee` &

別のプロセスで開始されます。プロセスIDを取得するには、次を使用できます。

ps ux | awk '/dnotify/ && !/awk/ {print $2}'

次に、次のようなものを使用してプロセスを強制終了できます。

kill `ps ux | awk '/dnotify/ && !/awk/ {print $2}'`

しかし、それが(プロセス名で強制終了する)目的である場合は、次を使用してより簡単な方法で実行できます。

killall dnotify
于 2011-02-21T00:02:34.947 に答える
7

ジッタを試す

https://github.com/TrevorBurnham/jitter

.coffee ファイルのディレクトリを監視し、ファイルが変更されたことを検出すると、自動的に .js に再コンパイルします。

ジッタ /path/to/coffee/dir /path/to/js/dir

私は、coffescript と sencha touch を使用するプロジェクトで試してみましたが、かなりうまくいくようです。連結の問題は処理しませんが、自動コンパイルだけが必要な人にとっては非常に簡単に使用できます。

于 2011-11-03T20:00:55.970 に答える
4

これは私を助けました(-oディレクトリを出力-jし、project.jsに参加し、-cwcoffeescriptディレクトリを完全にコンパイルして監視します):

coffee -o web/js -j project.js -cw coffeescript
于 2013-05-21T06:32:34.443 に答える
3

coffee --watch2 つの大きな欠陥があります。

  • コマンドが発行された後に作成された新しいファイルは監視されていません
  • 手動で開始する必要があるため、実行するのを忘れる可能性があります。これは、実行する前にコンパイルするのを忘れるほど素晴らしいことではありませgit commit

私が思いついた解決策はcoffee --watch、システムにログインしてから作業ディレクトリツリーを監視し、ファイルの保存/変更または新しいファイルの作成ごとに自動的にJavaScriptにコンパイルできるようにする、さらにいくつかの手順を実行するかなり単純なBashスクリプトです。

http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler

これを行うためのよりエレガントな方法があるかもしれませんが、この実装はうまく機能します =)

于 2011-10-18T20:23:42.243 に答える
2

/ srcの1レベル上にあるため、これは、深さに関係なく検出されたすべての.coffeeファイルに対して機能します。

coffee -w -c src/
于 2012-10-18T10:17:55.577 に答える
2
find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw

最後に変更されたコーヒースクリプトを見つけて、コンパイルウォッチモードにします

于 2011-12-30T14:41:51.887 に答える
2

コマンド ラインの coffeescript コンパイラは、複雑なプロジェクト構造にはあまり適していないことがわかりました。

あなたとあなたのビルド プロセスが私と同じくらい困っているなら、Gruntをチェックしてください- http://gruntjs.com/

これにより、非常に複雑なビルド プロセスが可能になります。

  1. コーヒーを新しいファイルに連結する
  2. コンパイル
  3. いくつかの追加の JS を連結する
  4. 縮小する

タスクはつなぎ合わせることができ、監視対象のファイル/フォルダーも高度にカスタマイズ可能です。

于 2012-11-01T07:41:11.170 に答える
1
find `pwd` | grep .coffee | xargs coffee -w -c

アプリケーションのルートディレクトリでこれを試してください

于 2013-02-25T20:25:49.947 に答える
1

あなたの質問に対する簡単な答えは、このcoffeeユーティリティはこのように設計されていないということです。ファイル監視と連結の組み合わせは、実際にはかなり複雑です。近い将来、CoffeeScript 用のより洗練されたビルド ツールが登場することを期待してください。それまでは、Cakefile または Ruby Watchr スクリプトを作成して、プロジェクトのビルドを実行することをお勧めします。次に、縮小、ドキュメント生成、および特定のプロジェクトに必要なものを投入することもできます (特定の連結順序の保証は言うまでもありません)。

于 2011-02-23T02:09:26.450 に答える
0

nodemon -x coffee server.coffee私のためにそれをします。

nodemonを使用してインストールnpm install -g nodemon

于 2013-02-05T19:24:48.210 に答える
0

連結について考えが変わりました。
以下を含む小さな compiler.sh ファイルを作成しました。

dnotify -M src/ -e coffee -o lib/ -c src/ &
dnotify -M spec/ -e coffee -o lib/ -c spec/ &

私のニーズにぴったりです。

于 2011-02-21T00:33:20.057 に答える