それでもNode.jsをMacアプリ化するをやる
はじめに
Atom Shellやnode-webkit使えば、アプリ化を自分で1からする必要はないと思うが、 無理やり上げるなら、node-webclで作ったOpenGL表示をするスクリプトなどが、 多少アプリ化するとかっこよさそうだし、現状node-ffiが0.11系に非対応なので、 Atom Shellや最新のnode-webkitで動かすことは出来ないので意味がありそう。
アプリ化するのに必要な事
- アプリケーションバンドルに関しての知識
- アプリケーションバンドル内に配置したファイルへのパスの取得方法
- nodeコマンドのフルパスの取得
アプリケーションバンドル
Hoge.appという名のディレクトリ配下に特定のフォルダ、ファイルを配置することで、OSXにアプリケーションを認識され、Finderに表示されたアイコンをダブルクリックすることで、起動が可能となる。
アプリケーションバンドルの雛形を作る
以下のコマンドでアプリケーションバンドルに必要なフォルダやファイルを作成できる。
echo ""|osacompile -o foo.app
アプリケーションバンドル内のリソースへのアクセス方法
AppleScriptの場合や、おそらくネイティブのCocoaアプリならそのためのAPIが用意されている模様。しかし、今回のNode.jsの場合、これらのAPIを使えない。困った。
シェルスクリプト自身のパス取得が可能
今回の作業で初めて知ったが、シェルスクリプトで自分自身のパスを取得することが可能だった。
そこで、この自分自身のパスを元に、jsファイルにアクセスする。
# ${0} の dirname を取得 cwd=`dirname "${0}"` # ${0} が 相対パスの場合は cd して pwd を取得 expr "${0}" : "/.*" > /dev/null || cwd=`(cd "${cwd}" && pwd)` jsPath="$cwd/../Resources/Scripts/test.js"
node_modulesの配置
nodeコマンドに指定する.jsファイルの格納されたフォルダ配下にnode_modulesフォルダを置けば、アクセス可能となる。
nodeコマンドのパスの取得
bash -lで.bash_profileが読み込まれるので、.bash_profileにnodebrewやnvmの設定を記述していれば、これらのバージョン管理システムに設定したnodeが使用される
Link
まとめ
タイトルは、それでもNode.jsをやる by Yosuke Furukawaからインスパイヤーされリスペクトしてみました。 実は、彼と私は共通点があり、富士ゼロックス、DeNAを受けた事、違いは、私は両方落ちたことw。
関連記事
- Atom ShellでCocoa APIが叩けるようになった
- Node.jsで簡単にGitHubの3Dビューアー用のSTLファイルを作る
- node.jsで大きな数を扱う
- Node.jsでパイプを使う外部コマンドを実行するには
- MavericksでNodObjCを試すには
- Node.jsでデバッガを使う際に必要なたった2つのこと
- [soloved]Mavericksでnode-webclがビルドできた
- Node.jsでコマンドラインアプリを書く JSONファイル編
- node.jsでHTTPプロキシ経由でhttpsアクセスするには
- Safariのリーディングリストをkindleに送る
- Herokuではnode.jsで作ったHttp Proxyが動かせなかった
- UbuntuやRaspberry PiでCloud9のソースを動かすには
- cloud9 IDEのコンパイルが出来なくなった場合の対処
- iPhone4Sの疑似テザリングツールをGitHubに上げた
- node.jsでhttpsも使えるHttp proxyを書いている
- node.jsで顔検出してみた
- node.jsが80番ポートで動かない #windows