clj -M -m cljs.main ...
本指南要求 ClojureScript 1.10.238 或更高版本,并假设您已熟悉 快速入门.
cljs.main
命名空间提供了一些函数,这些函数允许通过 Java 的应用程序启动器工具 java
启动 ClojureScript 程序和交互式会话。
本指南也易于与任何其他支持 Clojure CLI -m
标志的 Clojure 构建工具一起使用。
例如使用 clj
clj -M -m cljs.main ...
cljs.main/main
入口点接受各种参数和标志。
没有选项或参数,运行交互式读取-求值-打印循环。
初始化选项
-co
, --compile-opts
edn 配置构建的选项,可以是 EDN 字符串或系统依赖的路径分隔的 EDN 文件/类路径资源列表。选项将从左到右合并。
-d
, --output-dir
path 设置要使用的输出目录。如果提供,该目录中的 cljsc_opts.edn
将用于设置 ClojureScript 编译器选项。
-re
, --repl-env
env 要使用的 REPL 环境。内置支持的值:node
, browser
。默认值为 browser
。
-ro
, --repl-opts
edn 配置 repl-env 的选项,可以是 EDN 字符串或系统依赖的路径分隔的 EDN 文件/类路径资源列表。选项将从左到右合并。
-t
, --target
name JavaScript 目标。配置环境引导,默认值为 browser
。支持的值:node
或 nodejs
, webworker
, none
。
仅适用于 --main
和 --repl
的初始化选项
-e
, --eval
string 在字符串中求值表达式;打印非 nil
值。
-i
, --init
path 加载文件或资源。
-v
, --verbose
bool 如果为 true
,将启用 ClojureScript 详细日志记录。
仅适用于 --compile
的初始化选项
-O
, --optimizations
level 设置优化级别,仅在使用 --compile
主选项时有效。有效值为:none
, whitespace
, simple
, advanced
。
-o
, --output-to
file 设置输出编译文件。
-w
, --watch
path 持续构建,仅在使用 --compile
主选项时有效。指定要监视的目录的系统依赖路径分隔列表。
主选项
-
从标准输入运行脚本。
-c
, --compile
[ns] 运行编译。如果指定可选命名空间,则用作主入口点。如果随后是 --repl
,则在编译完成后启动 REPL。如果随后是 --server
,则在编译完成后启动一个提供当前目录的 Web 服务器。
-h
, --help
, -?
打印此帮助信息并退出。
-m
, --main
ns 使用参数调用命名空间中的 -main
函数。
-r
, --repl
运行 REPL。
-s
, --serve
host:port 启动一个简单的 Web 服务器来提供当前目录。
path 从文件或资源运行脚本。
对于 --main
和 --repl
进入 cljs.user
命名空间。
将 *command-line-args*
绑定到一个字符串序列,其中包含出现在任何主选项之后的命令行参数。
按顺序运行所有初始化选项。
调用 -main
函数或运行 REPL 或脚本(如果请求)。
初始化选项可以重复和随意混合,但必须出现在任何主选项之前。
在 --compile
的情况下,您可以在之后提供 --repl
或 --serve
选项。
路径可以是文件系统中的绝对路径或相对路径,也可以是相对于类路径的路径。类路径相关的路径以 @
或 @/
为前缀。
用法消息中也描述了相同的內容。
Usage: java -cp cljs.jar cljs.main [init-opt*] [main-opt] [arg*]
With no options or args, runs an interactive Read-Eval-Print Loop
init options:
-co, --compile-opts edn Options to configure the build, can be an EDN
string or system-dependent path-separated list of
EDN files / classpath resources. Options will be
merged left to right.
-d, --output-dir path Set the output directory to use. If supplied,
cljsc_opts.edn in that directory will be used to
set ClojureScript compiler options
-re, --repl-env env The REPL environment to use. Built-in supported
values: node, browser. Defaults to browser
-ro, --repl-opts edn Options to configure the repl-env, can be an EDN
string or system-dependent path-separated list of
EDN files / classpath resources. Options will be
merged left to right.
-t, --target name The JavaScript target. Configures environment
bootstrap and defaults to browser. Supported
values: node or nodejs, webworker, none
init options only for --main and --repl:
-e, --eval string Evaluate expressions in string; print non-nil
values
-i, --init path Load a file or resource
-v, --verbose bool If true, will enable ClojureScript verbose logging
init options only for --compile:
-O, --optimizations level Set optimization level, only effective with --
compile main option. Valid values are: none,
whitespace, simple, advanced
-o, --output-to file Set the output compiled file
-w, --watch paths Continuously build, only effective with the --
compile main option. Specifies a system-dependent
path-separated list of directories to watch.
main options:
- Run a script from standard input
-c, --compile [ns] Run a compile. If optional namespace specified,
use as the main entry point. If --repl follows,
will launch a REPL after the compile completes.
If --server follows, will start a web server that
serves the current directory after the compile
completes.
-h, --help, -? Print this help message and exit
-m, --main ns Call the -main function from a namespace with args
-r, --repl Run a repl
-s, --serve host:port Start a simple web server to serve the current
directory
path Run a script from a file or resource
For --main and --repl:
- Enters the cljs.user namespace
- Binds *command-line-args* to a seq of strings containing command line
args that appear after any main option
- Runs all init options in order
- Calls a -main function or runs a repl or script if requested
The init options may be repeated and mixed freely, but must appear before
any main option.
In the case of --compile you may supply --repl or --serve options afterwards.
Paths may be absolute or relative in the filesystem or relative to
classpath. Classpath-relative paths have prefix of @ or @/
启动 ClojureScript repl 的最简单方法是使用以下命令行与随附的 cljs.jar
一起使用。
java -cp cljs.jar cljs.main
REPL 提示符显示当前命名空间的名称,默认值为 cljs.user。
使用 REPL 时,可以使用几个特殊的变量。
*1
, *2
, *3
- 保存最后三个求值表达式的结果。
*e
- 保存最后一个异常的结果。
要将一个充满 ClojureScript 代码的文件作为脚本运行,请将脚本的路径作为参数传递给 cljs.main
。
java -cp cljs.jar cljs.main /path/to/myscript.cljs