Size: a a a

Clojure — русскоговорящее сообщество

2021 January 11

CD

Camina Drummer in Clojure — русскоговорящее сообщество
The required namespace "devtools.core" is not available, it was required by "myapp/lib/devtools.cljs"

Если я добавляю binaryage/devtools в зависимости prod, то естественно получаю ругань что ненадо так
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Camina Drummer
Подскажите плиз, как можно заставить shadow-cljs вообще не компилировать код в прод, у меня внутри нэймспэйса myapp.lib.devtools риквайрится dev-зависимость, и при исполнении lein release из-за этого падает компиляция
Один из вариантов решения — держать для разработки второй модуль в шэдоу, где будет вся инициализация для прода + девтулз
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
И это исключает завязку на баги в шэдоу или ещё что-то
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Camina Drummer
Подскажите плиз, как можно заставить shadow-cljs вообще не компилировать код в прод, у меня внутри нэймспэйса myapp.lib.devtools риквайрится dev-зависимость, и при исполнении lein release из-за этого падает компиляция
Второй вариант, который Вы хотели наверное — константы компиляции, они задаются в shadow-cljs.edn.
Посмотрите compilation constants в гайде.
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Иван Федоров
Один из вариантов решения — держать для разработки второй модуль в шэдоу, где будет вся инициализация для прода + девтулз
То есть создать какой-нибудь main-dev.cljs и как таргет для dev-режима указать его?
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Блин, жаль конечно что dead code elimination не срабатывает в when
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Camina Drummer
То есть создать какой-нибудь main-dev.cljs и как таргет для dev-режима указать его?
Ага
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Благодарю
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Camina Drummer
Блин, жаль конечно что dead code elimination не срабатывает в when
Можете попробовать на debug? ещё повесить ^:const, может тогда DCE сработает.
Но мне кажется что #1 надёжнее
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Иван Федоров
Можете попробовать на debug? ещё повесить ^:const, может тогда DCE сработает.
Но мне кажется что #1 надёжнее
Не спасло, к сожалению
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Camina Drummer
Подскажите плиз, как можно заставить shadow-cljs вообще не компилировать код в прод, у меня внутри нэймспэйса myapp.lib.devtools риквайрится dev-зависимость, и при исполнении lein release из-за этого падает компиляция
Пишут, что надо константу, которая резолвнется в compile time с тайпхинтом ^boolean, тогда Closure уберёт условие в режимах simple и advanced:
https://clojureverse.org/t/how-to-deal-with-development-code-in-clojurescript/613
источник

IK

Ivan Kuznetsov in Clojure — русскоговорящее сообщество
Camina Drummer
Подскажите плиз, как можно заставить shadow-cljs вообще не компилировать код в прод, у меня внутри нэймспэйса myapp.lib.devtools риквайрится dev-зависимость, и при исполнении lein release из-за этого падает компиляция
Можно попробовать require в when вызывать. Типа условный require.
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Почему-то ничего не меняется от этого. Попробую другие способы
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Возможно, тайпхинт должен быть непосредственно в if/when.
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
;; то что на втором скрине, кстати, было из коробки ( это проект из re-frame темплейта )
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Хм-м-м. А Google Closure там вообще участвует?
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Pavel Peganov
Возможно, тайпхинт должен быть непосредственно в if/when.
Это как?
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Pavel Peganov
Хм-м-м. А Google Closure там вообще участвует?
Да
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Camina Drummer
Это как?
(when ^boolean CONDITION BODY)
источник