Что делает эта команда «response-scripts eject»?


108

Что делает npm run ejectкоманда? Я понимаю, что делают другие команды, такие как start, build, test. Но понятия не имею о катапультировании.


2
как проверить / проверить, была ли эта команда применена или нет?
AlexNikonov

Ответы:


160

create-response-app инкапсулирует все модули npm, которые он использует внутри, так что ваш package.json будет очень чистым и простым, и вам не придется об этом беспокоиться.

Однако, если вы хотите начать делать более сложные вещи и устанавливать модули, которые могут взаимодействовать с модулями, которые приложение create-response-app использует под капотом, эти новые модули должны знать, что доступно, а что нет, то есть вам нужно иметь create-react -app не абстрактно их.

Это, по сути, то, что react-scripts ejectделает. Он перестанет скрывать то, что было установлено под капотом, и вместо этого выбросит эти вещи в package.json вашего проекта для всеобщего обозрения.


3
@Sergii ответ более точен. Eject - это не только модули package.json и NPM, но и другие вещи (babel, webpack, eslint и т. Д.) Github.com/facebook/create-react-app/blob/master/packages/…
Бруно Монтейро,

69
npm run eject

Примечание: это односторонняя операция. Однажды ты ejectне сможешь вернуться!

Если вас не устраивают инструменты сборки и варианты конфигурации, вы можете сделать это ejectв любое время. Эта команда удалит из вашего проекта зависимость отдельной сборки.

Вместо этого он скопирует все файлы конфигурации и транзитивные зависимости (Webpack, Babel, ESLint и т. Д.) Прямо в ваш проект, чтобы вы имели полный контроль над ними. Все команды, за исключением eject, по-прежнему будут работать, но они будут указывать на скопированные сценарии, чтобы вы могли их настроить. На этом этапе вы сами по себе.

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

ссылка на документацию


Альтернативы катапультированию

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


мы можем вернуться, используя добавление сноваnpm install react-scripts
Ашиш Камбл

Я совершенно не удовлетворен обоими этими подходами. У вас древние зависимости без видимой причины. Оба подхода скрывают эти проблемы и переводят усилия разработчиков с проекта на тупиковый код. Нет альтернативы правильному управлению зависимостями.
Árpád Magosányi,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.