clojure-russia

Работа и релокейт: #jobs-rus | #clojure-russia-offtop Телеграм-чат https://t.me/clojure_ru
y.khmelevskii 2017-11-26T08:55:31.000043Z

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

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

kuzmin_m 2017-11-26T09:03:00.000059Z

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

y.khmelevskii 2017-11-26T09:06:14.000003Z

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

kuzmin_m 2017-11-26T09:08:36.000063Z

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

kuzmin_m 2017-11-26T09:09:25.000017Z

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

kuzmin_m 2017-11-26T09:09:37.000010Z

или clojure.spec.alpha/assert

y.khmelevskii 2017-11-26T09:10:10.000022Z

пишет

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.khmelevskii 2017-11-26T09:10:28.000025Z

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

kuzmin_m 2017-11-26T09:12:14.000026Z

http://cljs.github.io/api/cljs.core/require

kuzmin_m 2017-11-26T09:12:19.000065Z

Only usable from a REPL.

y.khmelevskii 2017-11-26T09:14:35.000048Z

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

y.khmelevskii 2017-11-26T09:14:59.000073Z

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

kuzmin_m 2017-11-26T09:15:33.000024Z

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

kuzmin_m 2017-11-26T09:15:46.000033Z

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

y.khmelevskii 2017-11-26T09:16:15.000002Z

понятно

2017-11-26T12:45:18.000022Z

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

igrishaev 2017-11-26T18:39:35.000046Z

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

y.khmelevskii 2017-11-26T18:40:34.000087Z

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

igrishaev 2017-11-26T18:40:37.000036Z

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

y.khmelevskii 2017-11-26T18:41:02.000095Z

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

igrishaev 2017-11-26T18:42:01.000076Z

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

y.khmelevskii 2017-11-26T18:42:18.000030Z

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

igrishaev 2017-11-26T18:42:43.000099Z

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

y.khmelevskii 2017-11-26T18:43:02.000035Z

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

igrishaev 2017-11-26T18:44:48.000034Z

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

y.khmelevskii 2017-11-26T18:45:32.000045Z

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

y.khmelevskii 2017-11-26T18:45:44.000007Z

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

y.khmelevskii 2017-11-26T18:47:53.000105Z

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