Как разместить Clojurescript npm-deps в производственной настройке?

это простой вопрос, но я уже некоторое время ломаю голову над ним, и у него не так много документации для просмотра:

У меня есть установка для разработки с ClojureScript, figwheel, npm deps, которые отлично работают для меня. Но когда я создаю производственный, скомпилированный файл JS, он не находит файлы зависимостей npm. Итак, где и как разместить какие из этих пакетов на рабочем веб-сервере, чтобы их можно было найти и загрузить?

С уважением, Крис


person chris_l    schedule 16.03.2019    source источник


Ответы (1)


Все файлы, необходимые для запуска вашего JS, будут включены в выходные данные компиляции после :advanced оптимизации. Никакие файлы node_modules не потребуются вообще, поэтому их не нужно размещать где-либо. Должны быть загружены только файлы, созданные непосредственно сборкой.

:npm-deps однако это альфа-функция со многими известными проблемами. Вы можете использовать альтернативные решения, такие как webpack или shadow-cljs, которые работают гораздо надежнее.

person Thomas Heller    schedule 17.03.2019
comment
Спасибо за ответ. Я пытался просто использовать :advanced, но это не сработало. Думаю, я посмотрю на инструменты, которые вы рекомендовали. - person chris_l; 17.03.2019
comment
Итак, эти два упомянутых вами инструмента работают с любым модулем npm? Мне не кажется ясным от чтения страниц... - person chris_l; 17.03.2019
comment
Я автор shadow-cljs, и да, он работает почти со всеми модулями npm. Только npm install the-thing и (:require ["the-thing" :as x]), никаких дополнительных действий не требуется. webpack немного сложнее, и вы должны следовать руководству, которое я дал. Возможно, вашу настройку :npm-deps можно исправить, но вы не предоставили достаточно информации, чтобы помочь. Возможно, опубликуйте свою конфигурацию сборки и ошибки, которые вы получаете. - person Thomas Heller; 18.03.2019
comment
Что ж, если shadow-cljs будет более зрелым, я просто воспользуюсь этим. Спасибо. - person chris_l; 18.03.2019
comment
Поскольку вы являетесь автором shadow-cljs, могу я спросить еще кое-что? какова подходящая цель для использования скомпилированного файла с веб-работником (с использованием слуги)? - person chris_l; 18.03.2019
comment
:browser имеет встроенную поддержку рабочих процессов. См. shadow-cljs.github.io/docs/UsersGuide.html#_web_workers - person Thomas Heller; 18.03.2019