web-dev-qa-db-ja.com

node.jsにJSの代わりにCoffeeScriptを使用できますか?

Node.jsをコーディングしてCoffeeScriptを使用する場合の制限は何ですか? JSでできることは何でもできますか?

189
donald

はい、CoffeeScriptは単純に純粋なJSにコンパイルされるため、node.jsと完全に互換性があります。

ノードでCoffeeScriptsを実行するには、次のいずれかを実行できます。

  • coffee -c example.coffeeと入力してコンパイルし、続いてnode example.jsと入力して、コンパイルされたJSを実行します。
  • coffee example.coffeeと入力するだけです
175
David Tang

CoffeeScriptファイルをNodeで直接実行できるだけでなく、

coffee source.coffee

javaScriptファイルであるかのように要求することもできます。たとえば、ディレクトリにlib.coffeeがある場合、次のように記述できます。

require './lib'

同じディレクトリにある別のCoffeeScriptファイルから。 (JavaScriptファイルからこれを行うには、上部にrequire 'coffee-script'を追加する必要があります。)したがって、プロジェクトをデプロイメント用にパッケージ化する場合を除き、Nodeで明示的にコンパイルする必要はありません。 npmのようなツール。

1つの注意点:スタックトレースでは、CoffeeScriptを直接実行している場合でも(JavaScriptにアクセスできない場合)、表示される行番号はコンパイル済みのJavaScriptを参照します。多くの人々がこれを修正しようとしていますが、それは大きな挑戦です。

89
Trevor Burnham

はい、これは別の簡単な答えです。 2つのステップを実行する必要があります。

  1. npm install coffee-script --save # I assume you would have done this already

  2. server.js of app.jsで実行される最初の行としてrequire('coffee-script')を使用します。 (PDATE:コーヒースクリプト1.7以降では、require('coffee-script/register'))を実行する必要があります。

これにより、アプリにcoffeescriptコンパイラが登録され、コーヒーファイルとjsファイルの処理を均等に開始できるようになります(つまり、コーヒーファイルも必要になります!)。

この方法では、Vanilla javascriptで1つのファイル(app.js)のみを記述する必要があります。ただし、アプリケーションを実行するための初期のグローバルにインストールされた依存関係として、展開環境にcoffeescriptが必要ないという利点があります。この場合、コードをコピーするだけで、npm installは必要なすべてのパッケージをインストールします。 npm startを使用すると実行できます

57
gprasant

ビデオチュートリアル

Pedro Teixeiraによるすばらしいチュートリアルシリーズを見ました。彼はノードチュートリアルでシリーズ全体を構築しています。彼は、編集された.coffeeファイルの自動検出とコンパイルおよび再ロードのためのnodemonへの参照を含んでいます。

  1. CoffeescriptおよびNode.js
  2. Nodemon
15
Mark Essel

Jitter を使用できます。これは、CoffeeScriptの単純な連続コンパイルです。

npm install -g jitter

Coffeeディレクトリに多数の* .coffeeファイルがあり、それらをjsディレクトリにコンパイルするとします。次に実行します:

jitter coffee js

Jitterは、終了するまで(Ctrl + C)、新しい変更を監視するまでバックグラウンドで実行されます。

11

Coffeescript + ExpressJS + Couchdb + Redis +認証:

https://Gist.github.com/652819

8
Shripad Krishna

これを試して

#!/usr/bin/env coffee
v = 78
console.log "The value of v is '#{v}'"

それから:

chmod +x demo.coffee
./demo.coffee

CoffeeScriptはノードとかなり強固に統合されています。 「coffee-script」モジュールがロードされると、require('coffee-script')、上記でデモしたshe-bang、またはcoffee demo.coffee ...を実行することで、ロードされたらrequire('./foo')を持ち込むfoo.coffee

6
Dave Dopson

すべてのcoffeescriptファイルをjavascriptに変更するたびに(subdirを含む1つのディレクトリで)自動的にコンパイルする場合は、次のコマンドを使用します。

find . -name '*.coffee' -type f -print0 | xargs -0 coffee -wc
0
Taner Topal