Все ли пакеты из package.json включены в сборку React? - PullRequest
0 голосов
/ 01 июня 2019

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

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Я не уверен насчет объединения package.json как для вашего экспресс-приложения, так и для приложения React. Я не вижу в этом преимущества, так как React использует веб-пакет, а объединение экспресс-сервера может испортить некоторые настройки по умолчанию, которыми я поделюсь с вами. Вы, как я это делаю.

Когда вы находитесь в разработке, у вас будет 2 отдельных приложения, работающих независимо. И приложение create-реагировать, и сервер узлов / экспрессов будут работать независимо друг от друга, и у них будет свой собственный отдельный package.json.

Однако в производственной среде вы запустите npm run build для вашего приложения React, и оно будет использоваться в качестве статического файла с вашего экспресс-сервера. Встроенное приложение React не имеет package.json

Я реализовал оба эти сценария, вы можете проверить это здесь

Девилд: https://github.com/iqbal125/react_hooks_fullstack_skeleton

Построение сборки: https://github.com/iqbal125/react-prod9

1 голос
/ 01 июня 2019

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

Самым популярным инструментом для реактивной сборки будет использование webpack (или других пакетов, которые делают подобные вещи).Webpack получает несколько «путей к файлам точек входа» от тех точек входа, которые он сканирует на наличие зависимостей.Затем веб-пакет упаковывает все в один выходной файл (или набор файлов, в зависимости от настроек).

Если вы не импортировали экспресс из любого из ваших файлов внешнего интерфейса, он не попадет в комплект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...