web-dev-qa-db-ja.com

コーヒースクリプトの編集

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

読んで ドキュメント それでも私が欲しいものを正確に得るのに問題があります。

フォルダを監視するために必要ですsrc/任意の*.coffeeファイルの変更を行い、それらを連結されたjavascriptファイルにコンパイルしてlib/something.js

どういうわけか、一緒に見ること、コンパイルすること、そして連結することを組み合わせることができません。 :/

22
Arnis Lapsa

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
21
arnorhs

ジッタを試してください

https://github.com/TrevorBurnham/jitter

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

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

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

7
Steve

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

coffee -o web/js -j project.js -cw coffeescript
4
Ikrom

coffee --watchには2つの大きな欠陥があります。

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

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

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

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

3
gsklee

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

coffee -w -c src/
2
mystrdat
find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw

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

2
Dino Reic

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

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

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

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

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

2
ckpcw
find `pwd` | grep .coffee | xargs coffee -w -c

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

1
AAA

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

1
Trevor Burnham

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

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

種類は私のニーズに合っています。

0
Arnis Lapsa

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

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

0
Matej