Зачем мне нужны эти пакеты в моем проекте CRA? - PullRequest
1 голос
/ 30 апреля 2019

Загрузил приложение CRA 3.0 и затем извлек.
Осматривая мои package.json.
Найдено несколько пакетов, использование которых мне не совсем понятно.

"semver": "6.0.0"
Зачем мне это нужно? Не найдено ни одного использования в config/* и scripts/*. Это похоже на артефакт react-scripts логики, похожей на валидацию для связанных пакетов, поэтому он выглядит как кусок раздувания в моих зависимостях приложения .

"react-app-polyfill": "^1.0.0"
Полифилы для ИЭ и тд? ОК, но почему отдельный пакет? Мне страшно использовать какой-то неизвестный пакет поверх core-js или babel-polyfill. И снова, в исходной кодовой базе не найдено ни одного использования.

P.S. Я не спрашиваю, что это за пакеты, я спрашиваю, почему я вижу, что они не используются в извлеченных скриптах

Обновление: react-app-polyfill/jsdom используется в установочных файлах Jest

1 Ответ

2 голосов
/ 30 апреля 2019

create-react-app использует пакет с именем react-scripts, который скрывает все различные пакеты, которые он использует ниже.

Когда вы eject используете приложение, зависимости, используемые react-scripts, копируются поверх в ваше package.json.Но для некоторых сценариев, таких как извлечение, различные разделы удаляются с помощью аннотации babel, например @remove-on-eject-begin.Зависимости, используемые в этих разделах, сохраняются даже после удаления.

Вот как вы находите такие пакеты, как semver, которые нигде не используются в коде вашего приложения.В неинжектированном приложении для создания реакции этот пакет будет использоваться для проверки семантических версий перед извлечением.

Теперь их можно безопасно удалить.Но они все равно не будут включены в статический пакет, который вы создаете.

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