WindowsでCoffeescriptを使用する

CoffeeScriptは、通常のJavaScriptよりも新しい言語/アドオン/アイシングシュガーです。 誰も彼のことを聞いていないなら、あなたはこの素晴らしい入門記事を読むことができます。



その魔法の性質により、コーヒースクリプトのコンパイラはコーヒースクリプトで記述されています。 しかし幸いなことに、CoffeeScriptソースパッケージには、すぐに使用できるjsスクリプトが既に含まれています。 そして、Node.js、Cygwin、Nantを使用してWindowsでそれらを使用する方法を説明します。これは一見簡単な作業ではないためです。



何が欲しい?



そのため、最初に、使用する単純なプロジェクトの構造を決定します。

プロジェクト
 + --- CoffeeScripts
 |  \ --- roast.coffee
 + --- JavaScript
 | ---ツール
 |  + --- CoffeeScript
 |  + --- CygwinLite
 |  + --- NAnt
 |  \ --- NodeJ
 \ --- compile.bat 


目標は、プロジェクトのルートでcompile.bat



を実行し、 CoffeScripts



フォルダーからJavaScripts



フォルダーにすべてのスクリプトをコンパイルすることです。



次のプログラムがこれに役立ちます。



例として、次の簡単なコーヒースクリプト「 roast.coffee



」をコンパイルします。

ロースト=(何)->
	 「ロースト#{what}」	
 console.logロースト「コーヒー!」 




CoffeeScript



パッケージの最新バージョンは、 githubからダウンロードするか、次のコマンドを使用してクローンを作成できます。

  git clone http://github.com/jashkenas/coffee-script.git 


CoffeeScript \ binフォルダーには、ケーキとコーヒーの2つのjsスクリプトが含まれています。 Cakeは、CakeScriptで記述されたmakeやrakeなどのプロジェクトのビルドシステムですが、この記事では使用しません。 Coffeeは、jsスクリプト用のコーヒースクリプトコンパイラです。 これが必要なものです。



Node.js



Windows用のnode.jsのバイナリアセンブリは、インターネットで簡単に見つけることができます。 個人的には、現在このサイトのバージョン0.2.2を使用しています



すでにこのステップで、コーヒーを開始できます。 PATH環境変数にnode.jsフォルダーへのパスが含まれていると仮定し、演習として、次のコマンド「 coffee --version



」を実行します。

 C:\ Project \ Tools \ CoffeeScript \ bin
 > node coffee-バージョン
 CoffeeScriptバージョン0.9.4 


ただし、binディレクトリからではなくcoffeeを呼び出す必要がある場合、すべてがそれほど単純ではありません。 node.jsはCygwinを使用してWindows用にコンパイルされるため、このようなプログラムのパラメーターのすべてのパスは、cygdriveを介してUNIX形式で指定する必要があります(絶対パスの場合)。

 D:\
 > node / cygdrive / C / Project / Tools / CoffeeScript / bin / coffee --version
 CoffeeScriptバージョン0.9.4


このような呼び出しを簡単にするには、コーヒー用の次のラッパーをバッチファイル「 coffee.bat



」の形式で使用できます。これは、binディレクトリに保存する必要があります。

 @pushd。
 @cd / d%〜dp0
 @node coffee%*
 @popd


コーヒーコールが簡単になりました。

 D:\
 > C:\ Project \ Tools \ CoffeeScript \ bin \ coffee --version
 CoffeeScriptバージョン0.9.4


これで、 roast.coffee



をコンパイルして、コンソールで結果を取得できます。

 C:\プロジェクト
 >ツール\ CoffeeScript \ bin \ coffee -c -p /cygdrive/C/Project/CoffeeScripts/roast.coffee
 (関数(){
   var roast;
   roast = function(what){
     return "ロースト" +(what);
   };
   console.log(ロースト( 'coffee!'));
 })。call(this);


ご覧のとおり、以前と同様に、コンパイラーへのパラメーターでUNIXパスを指定することは残っています。



ここに私たちの援助が来ます...



Cygwin-lite



...というか、彼の強力なユーティリティcygpath.exe。



Cygwin-Liteは非常に頻繁にトリミングされたCygwinであり、サイズが小さいため、コードと共に保存できます(はい、プロジェクトでのアセンブリのためにすべてを保持するのが好きです)。 こちらから Cygwin-Liteをダウンロードしてください 。 コンパイルするにはcygpathだけで十分ですが、パッケージとは別にダウンロードできる場所は見つかりませんでした。



以下のパラメーターでcygpathを使用します。

 cygpath -a -u windows-filename


これにより、WindowsのパスをUNIXの絶対パスに変換できます。 例:

 C:\ Project \ Tools \ CygwinLite \ bin
 > cygpath.exe -a -u cygpath.exe
 /cygdrive/c/Project/Tools/CygwinLite/bin/cygpath.exe


Compile.bat



OK、最後にバッチファイルを作成してスクリプトをコンパイルしましょう。

実験の純度のために、環境変数と自家製のcoffee.batは使用しません。

 @エコーオフ

 REMソーススクリプトフォルダー
 sourceDir = CoffeeScriptsを設定します

コンパイル済みスクリプトのREMフォルダー
 destDir = JavaScriptを設定

 REMユーティリティフォルダー
 set cygwinDir = Tools \ CygwinLite \ bin
 set coffeeDir = Tools \ CoffeeScript \ bin
 set nodeDir = Tools \ nodejs

 REM宛先フォルダーからコーヒーコンパイラスクリプトまでのUNIXパスを取得する
 for / f %% o in( '%cygwinDir%\ cygpath.exe -a -u "%destDir%"')set outputPath = %% o
 for / f %% c in( '%cygwinDir%\ cygpath.exe -a -u "%coffeeDir%\ coffee"')coffeePath = %% cを設定します

 REM各コーヒースクリプトについて...
 %% f in(%sourceDir%\ *。coffee)do(
   REM ...そのUNIXパスを取得する...
   for / f %% s in( '%cygwinDir%\ cygpath.exe -a -u %% f')do(
     REM ...そしてjavascriptで目的のフォルダーにコンパイルします!
     %nodeDir%\ node%coffeePath%-c -o%outputPath%%% s
   )
 )

エコー完了!


compile.bat



を実行し、 JavaScripts



フォルダーでコンパイル済みのcompile.bat



を取得します。

 C:\プロジェクト
 > compile.bat
できた!


 C:\プロジェクト
 > JavaScripts \ roast.jsと入力します
 (関数(){
   var roast;
   roast = function(what){
     return "ロースト" +(what);
   };
   console.log(ロースト( 'coffee!'));
 })。call(this);


やれやれ! しかし、大規模なプロジェクトをビルドするには、バッチファイルよりも突然何かが必要です。



Nantを使用する



NAnt、小さな教育プログラムに精通していない人のために。



NAntは、.NETプロジェクトを構築および展開するための無料のツールです。 かつて、NAntはAnt(Javaのビルドシステム)から.NETフレームワークに移植され、.NET開発者のニーズに合わせて調整されていました。 しかし、良い想像力があれば、このことは何にでも使用できます。 現在、NAntは、Monoを使用してWindowsとLinuxの両方で実行できます。 その利点:箱から出してすぐに多数のタスクと機能を実行でき、エラー処理に加えて、優れた拡張性とサードパーティのプラグインがあります。

Nantとの継続的な知り合いへのリンク:



そして、私はあなたがNantについていくらかの考えを持っていると仮定し、今度は以前のcompile.batと同様のコーヒースクリプトをコンパイルするビルドスクリプトを書きます。

 <?xml version = "1.0"?>
 <project xmlns = "http://nant.sf.net/release/0.90-alpha1/nant.xsd" name = "コーヒーテスト">

   <!-スクリプトの環境変数を設定します。 関数$ {cygpath}を使用するには、cygwinへのパスが必要です->
   <setenv>
     <変数名= "PATH"値= "Tools \ CygwinLite \ bin; Tools \ nodejs;%PATH%" />
   </ setenv>
  
   <foreach item = "File" property = "filename">
     <in>
       <items basedir = "CoffeeScripts">
         <include name = "*。coffee" />
       </ items>
     </ in>
     <do>
       <execプログラム= "ノード">
         <arg line = "$ {cygpath :: get-unix-path( 'Tools \ CoffeeScript \ bin \ coffee')}" />        
         <arg line = "-c" />
         <arg line = "-o $ {cygpath :: get-unix-path(path :: get-full-path( 'JavaScripts'))}" />
         <arg line = "$ {cygpath :: get-unix-path(path :: get-full-path(filename))}" />
       </ exec>
     </ do>
   </ foreach>
 </ project>


ビルドスクリプトを「 compile.build



」として保存し、新しい「 compile.bat



」をcompile.bat



して実行します。

ツール\ Nant \ bin \ nant.exe -buildfile:compile.build


ローストコーヒー



 C:\プロジェクト\ JavaScript
 >ノードroast.js
焙煎コーヒー! 


頑張って



All Articles