ClojureScript

原生可執行檔

本指南說明如何從 ClojureScript 原始碼產生原生可執行檔。基本概念是使用 ClojureScript 編譯器產生一個 JavaScript 檔案,然後使用一個名為 nexe 的 Node.js 工具將其編譯為可執行檔。產生的檔案可以在目標機器上運行,而無需安裝 node,這可能很方便。

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 將 js 編譯為原生 exe。第一次需要一些時間,但後續運行會相當快

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

盡情享受!

原始作者:Craig Andera