Appcelerator CLIとNode.js絡みでつまずいたことを書きました
久々にQiitaに投稿しました。
- Titanium - Appcelerator CLIで [Error: Module did not self-register.] と出るようになった - Qiita
- Titanium - Appcelerator CLI Coreのインストールでbufferutilのビルドがエラーになる - 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まであがっていました。
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
を実行するとエラーが続出しました。
今回も何か対処法があるかと試していると、こんなメッセージが出てきました。
Node.js v4.1.2上のTitaniumはまだ検証中ということかな。Node.js v0.12系はいけるみたい。 pic.twitter.com/vUXM3g21j9
— Umi Uyura (@umi_uyura) 2015, 10月 24
そんなわけで、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を今すぐマスター!
- 作者: 山田祥寛
- 出版社/メーカー: WINGSプロジェクト
- 発売日: 2015/08/28
- メディア: Kindle版
- この商品を含むブログを見る