ClojureScript

ネイティブ実行可能ファイル

このガイドでは、ClojureScript ソースからネイティブ実行可能ファイルを作成する方法を説明します。基本的な考え方は、ClojureScript コンパイラを使用して JavaScript ファイルを作成し、その後 nexe と呼ばれる Node.js ツールを使用してそれを実行可能ファイルにコンパイルすることです。結果ファイルは、ターゲットマシンにノードをインストールせずに実行できるため、便利です。

nexe は、v8 エンジンを Javascript を含む exe にコンパイルすることで動作します。したがって、厳密に言えば、プログラム自体が事前にコンパイルされていません。しかし、EXE のパッケージングの利便性を求めているのであれば、これはまだかなり便利です。

セットアップ

# Install node and nexe
brew install node
npm install nexe -g

小さな hello world ファイルを作ります

mkdir -p /tmp/nexe-test/src
cd /tmp/nexe-test
cat > src/hello.cljs <<EOF
(ns hello)
(enable-console-print!)
(println "Hello world!")
EOF

REPL を起動し、ClojureScript をコンパイルします

wget https://github.com/clojure/clojurescript/releases/download/r1.9.473/cljs.jar
java -cp cljs.jar clojure.main <<EOF
(require 'cljs.build.api)
(cljs.build.api/build "src" {:optimizations :advanced :output-to "out/main.js"})
EOF

nexe を使用して JavaScript をネイティブ exe にコンパイルします。1 回目は時間がかかりますが、それ以降の実行はかなりの速度になります

nexe -i out/main.js -o hello.exe

# Run it
time ./hello.exe

# It's reasonably fast:
# Hello world!
#
# real   	0m0.095s
# user   	0m0.070s
# sys    	0m0.025s

完了です!

元の著者: クレイグ・アンデラ