Как написать приложения для внешнего интерфейса (реагент) и внутреннего интерфейса (express.js) в одной и той же настройке clojurescript?

Могу ли я писать внешние (реагент) и внутренние (express.js) приложения в одном и том же проекте clojurescript?

После этих двух страниц.

  1. Серверная часть Написание приложений Node.js в Clojure и использование пакетов NPM (express.js)

  2. тень-cljs Frontend (реагент, реакция)

Оба они похожи, создайте новый проект cljs с помощью npx create-cljs-project {project-name}. Однако это два отдельных проекта, могу ли я написать фронтенд и бэкэнд приложение в одном проекте, если возможно, как управлять repl в этом проекте?

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конечно, вся система предназначена для объединения столько вещей, сколько вам нравится. Просто настройте несколько сборок на карте shadow-cljs.edn:builds.

Если у вас уже есть оба отдельных проекта, просто возьмите файлы .cljs и переместите их в другой. Затем возьмите конфиг сборки и также переместите его в другой shadow-cljs.edn.

Вы можете управлять несколькими сборками из пользовательского интерфейса shadow-cljs или из командной строки. Все команды, относящиеся к сборке, позволяют указать несколько сборок (например, npx shadow-cljs watch backend frontend, с :frontend и :backend сборками в shadow-cljs.edn).

Вы можете использовать пространства имен для правильной «категоризации» вашего проекта. Обычно у меня есть что-то вроде my.app.ui или my.app.frontend для вещей, связанных с интерфейсом, и что-то вроде my.app.server или my.app.backend.

С запущенными watch для обеих сборок вы можете просто переключаться между REPL в своем редакторе. Из командной строки вы можете просто npx shadow-cljs cljs-repl frontend или npx shadow-cljs cljs-repl backend. Или переключайтесь между ними из Clojure REPL через npx shadow-cljs clj-repl, а затем (shadow/repl :frontend). Это приведет вас к CLJS REPL для сборки :frontend. Вы можете выйти из него через :cljs/quit, что вернет вас к CLJ REPL.

Спасибо за ваш комментарий, могу ли я найти существующий проект для справки?

madeinQuant 25.04.2022 16:44

Другие вопросы по теме