新たなベターJavaScriptとしてJSX - a faster, safer, easier alternative to JavaScriptというものが公開されていたので触ってみました。
Windowsだとそのままでは動かないっぽいです。
必要なもの
- Github for Windows(git)
- node.js
- (perlも必要かも)
手順
1.githubからcloneしてくる
以下のページから"Github for Windows"や"git clone http://github.com/jsx/JSX.git"などでリポジトリを入手する。
https://github.com/jsx/JSX/
2.make setup
Windows標準だとmakeが入っていないのでコマンドラインで"npm install", "perl web/setup.pl"する。
Github for Windowsからshellを開くとperlが含まれているみたいで、perlを入れてなくても大丈夫かも(途中でフリーズした
そもそもperlの方は実行しないでもHello world!する範囲では動きました。
3.Hello, world!
"node .\bin\jsx --run .\example\hello.jsx"を実行。
以下のエラーの部分はPull requestを送ったところ、修正を取り込んでいただけました。
なので最新版では発生しません。
https://github.com/jsx/JSX/pull/2
すると以下の様なエラーが出ます。node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: ENOENT, no such file or directory 'C:\tmp\jsx.28228.137a1cb2717.js' at Object.openSync (fs.js:230:18) at Object.writeFileSync (fs.js:618:15) at Function.execNodeJS (C:\Users\oga\Documents\GitHub\JSX\bin\jsx:116:6) at Function.main (C:\Users\oga\Documents\GitHub\JSX\bin\jsx:360:9) at Object.<anonymous> (C:\Users\oga\Documents\GitHub\JSX\bin\jsx:377:5) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10)テンポラリ用のフォルダの指定がうまくいっていないようなので、112行目を以下のように書き換えます
var tmpdir = process.env.TMPDIR || "/tmp";//修正前 var tmpdir = process.env.TMPDIR || process.env.TMP || "/tmp";//修正後無事出力されました。
Hello, world!