Clojure China

shadow-cljs server 一些笔记

#1

跟作者 Slack 上聊了一会, 教了我一遍最新的 --server 模式怎么用, 还发现了几个 bug…

功能似乎是在 0.10.0 左右加进去的, 06-19 之前几天加上的,

然后用 shadow-cljs server 运行:

=>> ./node_modules/.bin/shadow-cljs server
shadow-cljs - using project version
shadow-cljs - using /Users/chen/repo/mvc-works/stack-workflow/shadow-cljs.edn
shadow-cljs - starting ...
shadow-cljs - server running at http://localhost:8200
shadow-cljs - socket repl running at tcp://localhost:8201

然后可以通过 shadow-cljs clj-repl 启动一个 Clojure 的 REPL,
注意这个 REPL 是秒开的, 当然, 前面那个 --server 启动巨慢…

=>> ./node_modules/.bin/shadow-cljs clj-repl
shadow-cljs - using project version
shadow-cljs - using /Users/chen/repo/mvc-works/stack-workflow/shadow-cljs.edn
shadow-cljs - connected to server
shadow-cljs - REPL - see (help), :repl/quit to exit
[1:0]~shadow.user=>

然后还可以强行启动一个 node 脚本的 REPL, 输入下面的代码:

yarn cljs-node

shadow-cljs 某种程度上已经可以替代 Lumo 的功能了, 用来快速生成 Node 脚本,
--server 的做法是后台持久运行一个编译进程, 这样就省掉重复编译的启动时间了,
这样的话用 cljs 写脚本, 自动编译好, 然后用 node 命令启动, 也应该蛮不错了.

这份说明基于 0.12 修改.

#2

昨天写的笔记, 到了凌晨命令行就被重构掉了, 捂脸捂脸捂脸 https://github.com/thheller/shadow-cljs/issues/52#issuecomment-309589158


更新: 算了我把文章里的命令也更新掉了, 0.12 已经发布!