你好,
自 cljs 1.10.748+ 以来,似乎出现了一个回归问题,即在没有明确指定输出目录的情况下请求节点编译时,会创建 .cljs_node_repl
目录作为输出目录,而不是 out
。
默认的输出编译目录未在 cljs.main -h
帮助文档中提及,但它似乎是默认为 out
,这由以下链接末尾的语句支持 https://script.clojure.org/reference/repl-and-main
编译源代码
要编译 ClojureScript 源代码,通过 -c 选项将主命名空间传递给
cljs.main
java -cp src:cljs.jar cljs.main -c my-namespace.core
输出将写入通过 -d
选项指定的目录(如果没有指定则为 out),或通过 -o
选项指定的文件。
重现
1. 下载 clojurescript 1.10.742 和 clojuresript 1.10.748 的 jars,https://github.com/clojure/clojurescript/releases
2. 根据 https://script.clojure.org/guides/quick-start 创建入门欢迎世界程序
3. 执行 java -cp "src;cljs-1.10.748.jar" cljs.main -t node -c hello-world.core
,观察会发现创建了一个 .cljs_node_repl
目录而不是预期的 out
目录。
如果使用早期版本运行相同命令,例如 java -cp "src;cljs-1.10.742.jar" cljs.main -t node -c hello-world.core
,它们可以观察到将如预期创建一个 out
目录。
这看起来像是一个回归。
解决方案是明确指定目录,例如 java -cp "src;cljs-1.11.60.jar" cljs.main -t node -d out -c hello-world.core
谢谢