Umi Uyuraのブログ

プログラミング関連の作業ログ

Appcelerator CLIとNode.js絡みでつまずいたことを書きました

久々にQiitaに投稿しました。

どちらも、Node.jsのバージョンを切り替えるときに遭遇するかもよ、という感じのものです。

そもそもは、Appceleratorドキュメントの Titanium Compatibility Matrix を見ていたところ、いつの間にかNode.jsはv0.12.7まで対応しているようだったので試してみたところ、最初の問題に遭遇。

いろいろと試して、そのときは解決しなかったので、とりあえず環境をv0.10.40に戻したところ、二番目の問題に遭遇と、立て続けに地雷を踏んだ感じでした。

TitaniumのNode.js v4.1系サポートは、まだ

対処法もわかったので、上記の記事を書きながら確認のためにCompatibility Matrixを見ていたら、Node.jsのMaxバージョンが v4.1.xまであがっていました。

f:id:umi-uyura:20151024233239p:plain

Titanium Compatibility Matrix - Appcelerator Platform - Appcelerator Docs

というわけで、さっそくv4.1.2を試してみることに。

ndenvでNode v4.1.2を入れて、Appcerator/Titanium関連のパッケージを一通りインストールしたあと、 appc コマンドを叩いてみると、やはり [Error: Module did not self-register.] が出たので、これは最初の記事と同様に npm rebuild することで解決。

問題なさそうかな、と思ったのですが、 (appc) ti build を実行するとエラーが続出しました。

今回も何か対処法があるかと試していると、こんなメッセージが出てきました。

そんなわけで、Titanium SDK 5.0.2の時点では、Node.js v4.1.2は使えず、v0.12/v0.10系を使うのが良さそうです。

まとめ

Node.jsのバージョンが上がっていくなか、Titaniumの推奨環境としては長らくv0.10系止まりだった気がします。

自分的には最新バージョンのNode.jsを使う必要性が低かったこともあり、Titaniumに合わせてv0.10系をメインで使っていました。

が、一度はio.jsと分離したNode.jsが統合されて4.x系としてスタートしたことで、Titaniumはその辺りはどうなっていくのか、少し気になってはいました。

まだ不完全ですが、少なくとも新しい4.x系のサポートはされそうなので、それを待って、自分の環境も4.x系ベースに上げていこうかと思います。

速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター!

速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター!