Я хочу скомпилировать свой файл .cljs
как для среды браузера, так и для среды node.js, чтобы получить рендеринг на стороне сервера. Насколько я понимаю, нет возможности определить cljs env во время компиляции с условиями макроса чтения, такими как:
#?(:clj ...)
#?(:cljs ...)
поэтому я не могу легко сказать компилятору обработать что-то вроде #?(:cljs-node ...)
в среде node.js.
Второй вариант, который я вижу здесь, - это разработать файл макроса, который будет определять env во время компиляции. Но как определить, что текущая сборка нацелена на node.js? Может быть, можно как-то передать какие-то параметры компилятору или получить :target
параметр компилятора?
Вот мои загрузочные файлы:
application.cljs.edn:
{:require [filemporium.client.core]
:init-fns [filemporium.client.core/init]}
application.node.cljs.edn:
{:require [filemporium.ssr.core]
:init-fns [filemporium.ssr.core/-main]
:compiler-options
{:preamble ["include.js"]
:target :nodejs
:optimizations :simple}}