最近、Node.jsをやり始めた者です。
Node.jsをやり始めてから、色々調べているうちにVert.xだったりJXCoreという単語を見かけるようになって気になったので使ってみようと思いました。
そもそもJXcoreってなに?
僕も全然詳しくないので⇓の記事を参考にしてください。
Node.jsを拡張した「JXCore」、オープンソースでソースコードを公開
JXCoreを使ってJavaScriptのコードをネイティブコードにパッケージ化する
ざっくり言うと、Node.jsに独自拡張が追加されたやーつって事らしいです。
環境
今回はdocker上に立てたUbuntu14.04にインストールしてみようと思います。
事前準備
インストールのまえに必要そうなパッケージをインストールしておきます。
※不要なものもあるかもしれませんが、ご容赦ください。。
sudo apt-get install git clang-3.4 clang-3.4-doc libclang-common-3.4-dev libclang-3.4-dev libclang1-3.4 libclang1-3.4-dbg libllvm-3.4-ocaml-dev libllvm3.4 libllvm3.4-dbg lldb-3.4 llvm-3.4 llvm-3.4-dev llvm-3.4-doc llvm-3.4-examples llvm-3.4-runtime clang-modernize-3.4 clang-format-3.4 python-clang-3.4 lldb-3.4-dev
インストール
こちらを参考にやっていきます。
Prerequisitesを見ると
* GCC 4.2 or newer (for SpiderMonkey builds 4.7+)
* Python 2.7.x
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)
* for Windows (VS2012+) and Visual C++ Redistributable
となってます。
今回はUbuntuなのでGCC、 Python、 GNU Makeをインストールします。
sudo apt-get install gcc python make
バージョン確認
$ gcc -v
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
$ python -V
Python 2.7.6
$ make -v
GNU Make 3.81
OK!
次はgithubからソースを落としてきます。
今回はとりあえず、/home/yama/dev/に落としてきます。
$ cd /home/yama/dev
$ git clone https://github.com/jxcore/jxcore.git
ソースを落としてきました!
jxcoreというディレクトリが出来てます。中に入っちゃいます。
$ cd ./jxcore
そして、、、コンパイルです。
$ ./configure
$ make
コンパイルに成功すると、out/Release/の中にjxとういう実行コマンドが出来てました!!
$ pwd
/home/yama/dev/jxcore
$ ls ./out/Release/
jx ←これ libopenssl.a libv8_nosnapshot.a obj
libcares.a libsqlite3.a libv8_snapshot.a obj.cmp
libchrome_zlib.a libuv.a linker.lock obj.host
libhttp_parser.a libv8_base.a mksnapshot obj.target
これを叩けばいいのですが、とりあえずパスを通しておきます。
$ vi ~/.bashrc
// 最後の行に以下を追加
PATH=$PATH:/home/yama/dev/jxcore/out/Release/
確認
- バージョン
$ jx -v
v0.10.40
- ファイル実行
$ jx hello.js
Hello!, jx
hello.jsの中身はこちら
console.log('Hello!, jx');
おまけ
Node.jsの拡張ってことだったけど、もとになってるNodeのバージョンはいくつなのかな?と思ったので確認。
コマンドライン上で確認。
jx
> process.versions;
{ http_parser: '1.0',
node: '0.10.40',
jxcore: '0.3.1.2',
ch: 0,
v8: '3.14.5.9',
sm: 0,
embedded: { sqlite: '3.9.1' },
ares: '1.9.0-DEV',
uv: '0.10.36',
zlib: '1.2.3',
modules: '11',
openssl: '1.0.1p' }
v0.10.40か・・・。
一応、ROADMAPには
nodeの4.x系に対応とのことだけど。。。いつになるんだろうか。
Next Release RoadMap*
Debugger support for SpiderMonkey (@)
Node 4.x update (@)
Power7, Power8, Mips64 Arch. support (+)
Debugging from Mobile Applications (@)