唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

WindowsでJSXを動かそう

新たなベター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!