【问题标题】:How to write frontend (reagent) and backend (express.js) applications in a same clojurescript setup?如何在同一个 clojurescript 设置中编写前端(试剂)和后端(express.js)应用程序?
【发布时间】:2022-04-25 14:00:14
【问题描述】:
标签:
node.js
clojurescript
shadow-cljs
【解决方案1】:
当然,整个系统旨在组合任意数量的东西。只需在 shadow-cljs.edn :builds 映射中配置多个构建。
如果您已经拥有两个单独的项目,只需获取 .cljs 文件并将它们移动到另一个。然后获取构建配置并将其移动到另一个shadow-cljs.edn。
您可以从 shadow-cljs UI 或命令行控制多个构建。所有与构建相关的命令都允许您指定多个构建(例如,npx shadow-cljs watch backend frontend,:frontend 和 :backend 构建在 shadow-cljs.edn 中)。
您可以使用命名空间来正确“分类”您的项目。对于前端相关的事情,我通常有类似 my.app.ui 或 my.app.frontend 之类的东西,以及类似 my.app.server 或 my.app.backend 之类的东西。
在运行两个构建的 watch 时,您只需在编辑器中的 REPL 之间切换。从命令行您可以只使用npx shadow-cljs cljs-repl frontend 或npx shadow-cljs cljs-repl backend。或者从 Clojure REPL 通过npx shadow-cljs clj-repl 和(shadow/repl :frontend) 在它们之间切换。这将带您进入 :frontend 构建的 CLJS REPL。您可以通过:cljs/quit 退出,这会将您带回 CLJ REPL。