Fork me on GitHub
#clojure-russia
<
2017-11-26
>
y.khmelevskii08:11:31

приветствую. подскажите, как в cljs можно дигамически зарекваерить файл? Нужно что-то похожее на:

(when development?
  (require '(cljs.spec.test.alpha)
    (cljs.spec.test.alpha/instrument)))

kuzmin_m09:11:00

макрос написать?

y.khmelevskii09:11:14

в этом случае нужен макрос? кстати, выше псевдокод, и он не работает

kuzmin_m09:11:36

если убрать (when development? require отрабатывает?

kuzmin_m09:11:25

если да - то нужно макрос написать посмотри как работает clojure.core/assert

kuzmin_m09:11:37

или clojure.spec.alpha/assert

y.khmelevskii09:11:10

пишет

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

y.khmelevskii09:11:28

сейчас посмотрю

kuzmin_m09:11:19

Only usable from a REPL.

y.khmelevskii09:11:35

спасибо. понял

y.khmelevskii09:11:59

что тогда в таких случаях делать?

kuzmin_m09:11:33

отдельный файл для разработки, который все стартует

kuzmin_m09:11:46

отдельный файл для старта в проде

y.khmelevskii09:11:15

понятно

zarkone12:11:18

вот это возможно поможет

igrishaev18:11:35

это делается на уровне project. в зависимости от профиля в source-paths добавляются те или инуые пути

y.khmelevskii18:11:34

@igrishaev да, именно так сейчас и сделано. но это не удобно

igrishaev18:11:37

тебе нужно навесить инструмент на время тестов?

y.khmelevskii18:11:02

мне нужно что бы спекой во время дева бали покрыты пропсы компонентов

igrishaev18:11:01

у тебя может быть отдельный модуль где ты навешиваешь спеки. и подгружать его в зависимости от профиля.

y.khmelevskii18:11:18

и в прод бандле мне cljs.spec.test.alpha не нужен

igrishaev18:11:43

добавь эту зависимость в депенденси тестового профиля

y.khmelevskii18:11:02

у каждого компонента спека своя. приходится в отдельной dev директории держать навешивание спеки для каждого компонента

igrishaev18:11:48

ну, мне кажется это не страшно.

y.khmelevskii18:11:32

да, эта депенденси только для dev профиля. проблема в динамическом require. и кроме как вынести в отдельный src path который в dev профиле другой, я пока решения не вижу. preloads пропсу компилятора сейчас буду пробовать

y.khmelevskii18:11:44

да не страшно, просто немного не удобно

y.khmelevskii18:11:53

кто-то в этом чатике говорил, что https://github.com/jeaye/orchestra помогает решить эту проблему, но я не понял каким образом