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 将 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