【发布时间】:2017-11-07 05:59:23
【问题描述】:
使用 Lumo 和下面提到的文件,我可以运行 $ node main.js 和 presto! “Hello world!”。这很好,但是使用 Lumo 有一些缺点,我想知道 cljs.jar 是否可以做到这一点。
如何使用可由 NodeJs 运行的 ClojureScript 编译器 (cljs.jar) 从 clojurescript 创建单个 javascript 文件。
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})
目标是拥有一个包含所有内容的单个文件,无需导入/需要外部文件。
我为什么要这个? 有许多网站在创建和/或增强算法方面面临开发人员挑战。问题是这些网站中的大多数并不是你都使用clojure,也不是clojurescript。但他们确实允许你使用 javascript。
这些站点通常也允许您使用 Java...因此,如果有另一种方法可能会导出“java”文件,而不是 Class 文件,那也可以。我怀疑这是可能的,但我想我会问的。
【问题讨论】:
-
您当前的设置有什么问题?不使用您的
node.cljs生成一个可以使用node运行的 JavaScript 文件? -
哦,你使用的是
lumo.build.api。我认为您可以对cljs.build.api做同样的事情。 -
我所有尝试生成可由 NodeJs 执行的单个文件的尝试都失败了。它们包括导入语句。关键是不要导入任何东西,我想要一个包罗万象的文件。我更新了帖子以澄清。
标签: javascript java node.js clojurescript