приветствую. подскажите, как в cljs можно дигамически зарекваерить файл? Нужно что-то похожее на:
(when development?
(require '(cljs.spec.test.alpha)
(cljs.spec.test.alpha/instrument)))
макрос написать?
в этом случае нужен макрос? кстати, выше псевдокод, и он не работает
если убрать (when development? require отрабатывает?
если да - то нужно макрос написать посмотри как работает clojure.core/assert
или clojure.spec.alpha/assert
пишет
15 (when development?
16 (require '[cljs.spec.test.alpha]
^--- Arguments to require must be quoted. Offending spec: (cljs.spec.alpha/fdef render :args spec/args) at line 16
сейчас посмотрю
Only usable from a REPL.
спасибо. понял
что тогда в таких случаях делать?
отдельный файл для разработки, который все стартует
отдельный файл для старта в проде
понятно
@y.khmelevskii https://clojurescript.org/reference/compiler-options#preloads
вот это возможно поможет
это делается на уровне project. в зависимости от профиля в source-paths добавляются те или инуые пути
@igrishaev да, именно так сейчас и сделано. но это не удобно
тебе нужно навесить инструмент на время тестов?
мне нужно что бы спекой во время дева бали покрыты пропсы компонентов
у тебя может быть отдельный модуль где ты навешиваешь спеки. и подгружать его в зависимости от профиля.
и в прод бандле мне cljs.spec.test.alpha
не нужен
добавь эту зависимость в депенденси тестового профиля
у каждого компонента спека своя. приходится в отдельной dev
директории держать навешивание спеки для каждого компонента
ну, мне кажется это не страшно.
да, эта депенденси только для dev профиля. проблема в динамическом require
. и кроме как вынести в отдельный src path который в dev профиле другой, я пока решения не вижу. preloads
пропсу компилятора сейчас буду пробовать
да не страшно, просто немного не удобно
кто-то в этом чатике говорил, что https://github.com/jeaye/orchestra помогает решить эту проблему, но я не понял каким образом