Все ли пакеты из package.json включены в сборку React?

Я создал приложение для реагирования, которое и сервер, и клиент используют одно и то же package.json:

├───build
│   └───static
│       ├───css
│       ├───js
│       └───media
├───server
├───src
├───package.json (shared)

У меня очень простой вопрос: все ли пакеты из package.json включены в окончательную сборку React?

Например, я использую express для сервера. Он включен в сборку React?

Если да, то есть ли способ избежать этого? Или я выбрал не ту архитектуру?

Редактировать:

Я использую create-react-app, режим по умолчанию

Как именно вы создаете приложение React? Вы создаете-реагируете-приложение или конфигурацию веб-пакета, которая выполняет связывание, минимизацию и встряхивание дерева? Если вы являетесь только тем, что React фактически импортирует и использует, будет включено в статические встроенные ресурсы. При этом вам нужно поделиться дополнительной информацией о том, как вы создаете часть React.

Alexander Staroselsky 01.06.2019 21:44

Вы выбрали не ту архитектуру. У вас обязательно должны быть папки client и server с двумя отдельными package.json файлами. Дополнительно: общие вещи между клиентом и сервером могут помещаться в третью папку, которую можно включить с помощью ../shared

ugh StackExchange 01.06.2019 21:44

@AlexanderStaroselsky Я использую приложение create-реагировать в режиме по умолчанию

Rashomon 01.06.2019 21:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
728
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Нет* (в общем случае).

Самый популярный инструментарий сборки реакции будет использовать 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

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