Я создал приложение для реагирования, которое и сервер, и клиент используют одно и то же package.json:
├───build
│ └───static
│ ├───css
│ ├───js
│ └───media
├───server
├───src
├───package.json (shared)
У меня очень простой вопрос: все ли пакеты из package.json включены в окончательную сборку React?
Например, я использую express для сервера. Он включен в сборку React?
Если да, то есть ли способ избежать этого? Или я выбрал не ту архитектуру?
Редактировать:
Я использую create-react-app, режим по умолчанию
Вы выбрали не ту архитектуру. У вас обязательно должны быть папки client и server с двумя отдельными package.json файлами. Дополнительно: общие вещи между клиентом и сервером могут помещаться в третью папку, которую можно включить с помощью ../shared
@AlexanderStaroselsky Я использую приложение create-реагировать в режиме по умолчанию





Нет* (в общем случае).
Самый популярный инструментарий сборки реакции будет использовать webpack (или другие сборщики, которые делают подобные вещи). Webpack получает некоторые «пути к файлам точек входа», из этих точек входа он сканирует зависимости. Затем webpack упаковывает все в один выходной файл (или набор файлов, в зависимости от настроек).
Если вы не импортировали экспресс из каких-либо файлов внешнего интерфейса, он не войдет в комплект.
Я не уверен в объединении package.json как для вашего экспресс-приложения, так и для приложения React, я не вижу преимущества в этом, поскольку React использует веб-пакет, а объединение экспресс-сервера может испортить некоторые настройки по умолчанию, я поделюсь с вами, как я сделай это.
Когда вы находитесь в разработке, у вас будет 2 отдельных приложения, работающих независимо. Приложение create-react-app и узел/экспресс-сервер будут работать независимо друг от друга, и у них будет свой отдельный package.json.
Однако в рабочей среде вы будете запускать сборку npm run в своем приложении React, и она будет использоваться как статический файл с вашего экспресс-сервера. Встроенное приложение React не имеет package.json
Я реализовал оба этих сценария, вы можете проверить это здесь
Сборка для разработчиков: https://github.com/iqbal125/react_hooks_fullstack_skeleton
Производственная сборка: https://github.com/iqbal125/реакт-прод9
Как именно вы создаете приложение React? Вы создаете-реагируете-приложение или конфигурацию веб-пакета, которая выполняет связывание, минимизацию и встряхивание дерева? Если вы являетесь только тем, что React фактически импортирует и использует, будет включено в статические встроенные ресурсы. При этом вам нужно поделиться дополнительной информацией о том, как вы создаете часть React.