从 Clojurescript 创建一个 NodeJS 可运行的单个 javascript 文件

Creating a NodeJS runnable single javascript file from Clojurescript

使用 Lumo 和下面提到的文件我可以 运行 $ node main.jspresto! "Hello world!"。这很好,但使用 Lumo 有缺点,我想知道 cljs.jar.

是否可行

如何使用 ClojureScript 编译器 (cljs.jar) 从 clojurescript 创建单个 javascript 文件,NodeJs 可以 运行。

core.cljs

(ns hello-world.core
  (:require [cljs.nodejs :as nodejs]))
(nodejs/enable-util-print!)
(defn -main [& args]
  (println "Hello world!"))
(set! *main-cli-fn* -main)

node.cljs

(require '[lumo.build.api :as b])
(b/build "src"
  {:main 'hello-world.core
   :output-to "main.js"
   :optimizations :advanced
   :target :nodejs})

目标是拥有一个包罗万象的文件,没有 import/require 外部文件。

我为什么要这个? 有许多网站在创建 and/or 增强算法方面对开发人员提出挑战。问题是这些站点中的大多数并不都是你使用clojure 的,也不是clojurescript 的。但他们确实让你使用 javascript.

这些站点通常也允许您使用 Java...因此,如果有其他方法,也许可以导出 "java" 文件,而不是 Class 文件,那也行。我怀疑那是可能的,但我想我会问。

build.clj

(require 'cljs.build.api)
(cljs.build.api/build "src" {:output-to "main.js"
                             :main 'hello-world.core
                             :target :nodejs
                             :optimizations :advanced})

构建命令

  java -cp cljs.jar:src clojure.main build.clj