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


回答:


175

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

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

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

2
しかし、他のCoffeeScriptファイルを使用する場合はどうでしょうか。すべてを1つのCoffeeScriptに入れたくない
Jiew Meng

3
@Jiew孟あなたは同じように(ディレクトリパスとexample.coffeeを置き換える)でディレクトリ全体をコンパイルすることもできますし、できるrequire限り、あなたのようにコンパイルされていないのCoffeeScriptファイルをrequire('coffee-script')事前に。
David Tang

1
coffee example.coffee主に開発のために実行していますか?それとも、生産で十分に安定していますか?
mrmagooey 2013年

4
ええ、2つの選択肢の違いは何ですか?
スティーブベネット

4
コーヒーをインストールするにはsudo npm install -g coffee-script
Dmitry Polushkin 2013年

89

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

coffee source.coffee

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

require './lib'

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

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


1
クライアント側のcoffee / jsはどうなりますか?
ファンシー

クライアント側では、HTMLページに含める必要のある広告インタープリターが必要です。
Daniele Vrut 2013年

1
@ fancy、coffescript> 1.6.1 はソースマップをサポート
MegaTux

1
私の知る限り、これはJSをあなたの頭の中のコーヒーに関連付けることなくデバッグすることはできません。
エリック

1
CoffeescriptからJSへの変換ルールは非常にシンプルで、すべて文書化されています:)
Kedare 2014年

57

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

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

  2. 持っているrequire('coffee-script')で実行になるだろう最初の行としてserver.jsapp.js。(更新: coffee script 1.7以降では、require('coffee-script/register'))

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

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


2
1.7アップデート@gprasantについてのメモをありがとう、なぜこれが機能しなくなったのかと思って髪を抜いていた。
pix0r 14

15

ビデオチュートリアル

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

  1. CoffeescriptとNode.js
  2. ノードモン

上記のnodetuts.comリンクは壊れています。ただし、そのサイトのチュートリアルは素晴らしいようです。
ekillaby

おかげで、元のリンク先は消滅/移動しました。Google検索で明らかになったVimeoビデオ@countfloortilesにそれらを設定
Mark

3
優れたNodeJSデーモン/アセットパイプラインソリューションについては、brunch.ioを参照してください。コーヒー、CSSスーパーセットなどをカバーしています。
リンカーンB

これはしばらく前に発見されましたが、その後は訪れていません。提示していただきありがとう
ござい

11

CoffeeScriptの単純な連続コンパイルであるJitterを使用できます。

npm install -g jitter

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

jitter coffee js

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



6

これを試して

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

次に行います:

chmod +x demo.coffee
./demo.coffee

CoffeeScriptはノードとかなり強固に統合されています。「コーヒースクリプト」モジュールが読み込まれると、require('coffee-script')上記のデモ版のシーバンによって、または実行によってcoffee demo.coffee読み込まれます。読み込まれるrequire('./foo')と、foo.coffee


ありがとう、それはとても便利です!
マイクエリス

0

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

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

6
組み込みのcoffeescript機能の何が問題になっていますか?coffee -o lib/ -cw src/
aaaidan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.