What does this «react-scripts eject» command do?
What does the npm run eject command do? I do understand what other commands do like start, build, test. But no idea about eject.
20.2k 19 19 gold badges 104 104 silver badges 191 191 bronze badges
asked Jan 17, 2018 at 19:52
Ishan Patel Ishan Patel
5,741 12 12 gold badges 49 49 silver badges 69 69 bronze badges
how to check/verify was this command applied or not?
Mar 9, 2019 at 20:00
5 Answers 5
create-react-app encapsulates all of the npm modules it is using internally, so that your package.json will be very clean and simple without you having to worry about it.
However, if you want to start doing more complex things and installing modules that may interact with modules create-react-app is using under the hood, those new modules need to know what is available and not, meaning you need to have create-react-app un-abstract them.
That, in essence, is what react-scripts eject does. It will stop hiding what it’s got installed under the hood and instead eject those things into your project’s package.json for everyone to see.
answered Jan 17, 2018 at 19:59
7,452 2 2 gold badges 20 20 silver badges 34 34 bronze badges
@Sergii answer is more accurate. Eject is not only about package.json and NPM modules, it includes other things (babel, webpack, eslint, etc.) github.com/facebook/create-react-app/blob/master/packages/…
Feb 21, 2019 at 22:01
npm run eject
Note: this is a one-way operation. Once you eject , you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject . The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
Alternatives to Ejecting
Ejecting lets you customize anything, but from that point on you have to maintain the configuration and scripts yourself. This can be daunting if you have many similar projects. In such cases instead of ejecting we recommend to fork react-scripts and any other packages you need. This article dives into how to do it in depth. You can find more discussion in this issue.
N причин, чтобы использовать Create React App

Create React App предоставляет CLI-интерфейс для создания приложений с базовой структурой, устанавливает все нужные зависимости и добавляет в package.json скрипты для запуска, тестов и сборки приложения.
npm install -g create-react-app create-react-app my-app cd my-app/ npm start # yarn start
Zero configuration! Разработчики не могут настраивать Webpack или Babel, пока не сделают eject.
Если вы опытный пользователь и вас не устраивает стандартная конфигурация, можете сделать eject. В таком случае Create React App используется как генератор шаблонного кода.
Команда npm run eject копирует все конфиги и транзитивные зависимости (Webpack, Babel, ESLint и т. д.) в ваш проект, чтобы вы могли их контролировать. Команды вроде npm start и npm run build не перестанут работать, но будут указывать на скопированные скрипты, чтобы их можно было модифицировать. После этого вы сами по себе.
Почему я хочу не делать eject
Во-первых, потому что эту операцию нельзя отменить. Но дело не только в этом. Вот еще несколько причин.
Я хочу получать обновления Create React App
Представьте, что команда Create React App решает перейти на Webpack 2 (а они это уже сделали), чтобы поддерживать tree-shaking и другие крутые фичи. В таком случае мне достаточно будет обновить версию react-scripts вместо того, чтобы обновлять конфиги во всех приложениях.
Или, предположим, команда Create React App релизит Plugin System #670. Я бы с радостью использовал такую систему и даже создавал бы собственные плагины. Но, если eject был сделан, ничего не выйдет.
Не люблю, когда в package.json много зависимостей
Возможно, это мелочь, но я не хочу видеть в package.json кучу зависимостей babel*, eslint* и webpack*, которые я не использую напрямую в коде.
Лишние конфиги и лишний код
Я всегда поддерживаю чистоту в приложениях. После eject создаются директории scripts и config. А с ними — около десяти новых файлов по 50–200 строчек кода в каждом. Причем в большинстве случаев eject делают, чтобы поменять всего около пяти строк кода (добавить один новый Webpack Loader).
После того как я сделаю eject и отредактирую конфиги, нужно будет скопировать их в другие приложения, потому что чаще всего конфиги приложений (пресеты Babel, Webpack loaders и плагины) одинаковые.
Почему мне нравится Create React App
Это инструмент от разработчиков React
Разработчики Create React App — это разработчики React. Я им доверяю и уверен, что они знают, как правильно разрабатывать React-приложения, реализуя все фичи с правильной связкой технологий в рамках проекта Create React App.
В структуре приложения нет конфигурации и лишних файлов
Поскольку я люблю порядок в приложениях, мне определенно нравится, что отсутствуют webpack.config, нет кучи *rc-файлов и зависимостей в package.json.
Весь стек обновляется одной строкой

Стек разработки фиксированный и стабильный
В релизах Create React App присутствуют только stage-3 функции (release candidate). Иногда интересно поиграться с новыми фичами из секции draft, например, с do-expressions или null-propagation. Можно даже посмотреть на orthogonal-classes proposal, но использовать в продакшне — совсем не лучшая идея.
Но если всё-таки использовать фичи draft и proposal, результат можно было бы описать примерно так:

Функциональность этого инструмента быстро расширяется
Я уверен, что количество фич инструмента будет быстро расти. Сообщество уже достаточно большое, и поступает много интересных идей и предложений. Вот некоторые из них:
- Plugin System;
- Runtime error overlay;
- A global CLI for running a single component;
- Create git repository with initial commit;
- Add lint-staged + husky for prettier auto-formatting on commit;
- Support different .env configs.
Мой опыт работы с Create React App
Благодаря Create React App наша команда отказалась от CSS Modules, React Toolbox и еще кое-каких библиотек, для которых нужна была дополнительная конфигурация Webpack.
Кстати, react-toolbox-themr обеспечивает легкую интеграцию с React Toolbox с Create React App… Но описывать тему приложения в package.json не лучшая, как по мне, идея.
И я по-прежнему не хочу делать eject!
Работа с CSS
В официальной документации, в секции Adding a CSS Preprocessor (Sass, Less etc.), подробно описано, как настроить работу с sass или less.
Единственно ограничение — css modules.
Вместо CSS Modules мы начали смотреть в сторону Glamor, Aphrodite, styled-components, Fela и JSS.
Есть еще Radium, но мне не нравится использовать style для стилизации компонентов.
В итоге мы используем свой, еще совсем новый подход — rockey.
Описываем стили компонентов, используя Template Literals и отталкиваясь от реальных имен компонентов, вместо привычных CSS классов.
На первый взгляд подход похож на styled-components, но на самом деле совсем другой.
Загрузка из глобальных папок
Достаточно сложно работать с кодом, которому требуются модули из родительских директорий:
const dateUtils = require('../../../utils/date');
Обычно в Webpack это решается с помощью конфигурации resolve.modulesDirectories. Как я уже писал, в CRA-приложении нет доступа к Webpack, но возможны два решения.
Другой, более «красивый» способ — использовать переменную окружения NODE_PATH . Больше информации — в официальной документации Node.js Loading from the global folders.
Советую использовать cross-env, чтобы кроссплатформенно устанавливать переменные окружения.
"scripts": < "start": "cross-env NODE_PATH=src/scripts react-scripts start" >
Если вы используете .env-конфиг, просто добавьте переменную NODE_PATH :
NODE_PATH=src/scripts
Переменные окружения
Create React App по умолчанию поддерживает .env (используя dotenv-пакет). Просто создайте в корневой папке .env и запустите приложение. Не забудьте добавить каждой переменной префикс REACT_APP_. Больше информации — в официальной документации, в разделах Adding Custom Environment Variables и Adding Development Environment Variables In .env.
Поддержка нескольких .env-конфигов
Иногда полезно разделить конфиги по типу окружения (dev/test/prod). Например, вот .env.development:
REACT_APP_GOOGLE_CLIENT_ID = XXX-YYY-ZZZ.apps.googleusercontent.com REACT_APP_API_PROTOCOL = http: REACT_APP_API_HOST = localhost:3000 NODE_PATH = src/scripts PORT = 9001
А вот .env.production:
REACT_APP_GOOGLE_CLIENT_ID = ZZZ-YYY-XXX.apps.googleusercontent.com REACT_APP_API_PROTOCOL = https: REACT_APP_API_HOST = api.my-applicaton.com NODE_PATH = src/scripts
Сейчас это можно сделать, установив dotenv и обновив npm scripts :
"scripts": < "start": "node -r dotenv/config ./node_modules/.bin/react-scripts start dotenv_config_path=.env.development", "build": "node -r dotenv/config ./node_modules/.bin/react-scripts build dotenv_config_path=.env.production" >
Но, скорее всего, в релиз попадет мой Pull Request — Support different env configs #1343.
Какие .env*-конфиги можно будет использовать?
- .env — стандартный (общий) конфиг;
- .env.development, .env.test, .env.production — в зависимости от окружения;
- .env.local — локальный конфиг для переопределения любых переменных в зависимости от окружения разработчика. Игнорируется системой контроля версий;
- .env.development.local, .env.test.local, .env.production.local — локальный конфиг в зависимости от окружения. Игнорируется системой контроля версия.
- npm test — .env.test.local, env.test, .env.local, .env;
- npm run build — .env.production.local, env.production, .env.local, .env;
- npm start — .env.development.local, env.development, .env.local, .env.
Мы, например, не можем запускать приложение на 3000 порту, потому что работаем с Google Auth, который несколько лет назад был настроен на localhost порты 9001–9005. Конечно, мы можем изменить настройки Google Auth, но уже привычнее использовать именно эти порты.
Добавьте переменную окружения PORT с помощью cross-env:
"scripts":
PORT=9001
Дополнительная конфигурация
Вот список возможных настроек с помощью переменных окружения:
| Variable | Development | Production | Usage |
| BROWSER | + | — | Create React App открывает браузер, настроенный по умолчанию, но можно задать определенный браузер или установить none, чтобы отключить эту фичу. Также можно указать на Node.JS скрипт, который будет выполняться каждый раз при старте dev-сервера. |
| HOST | + | — | По умолчанию — localhost. |
| PORT | + | — | По умолчанию — 3000. Если он занят, Creat React App предложит запустить приложение на следующем доступном порте. Или можно задать определенный порт. |
| HTTPS | + | — | Если установлено в true — локальный dev-сервер будет запущен в https-режиме. |
| PUBLIC_URL | — | + | Обычно Create React App ожидает, что приложение расположено в корне веб-сервера или путь определен в package.json (homepage). Можно переопределить ссылку для всех ассетов. Это полезно, если вы используете CDN для хостинга приложения. |
| CI | + | + | Если установлено в true, Create React App будет обрабатывать warnings как ошибки. Запускает тесты без — watch параметра. |
Изменить конфиг Webpack: добавить плагины и поменять точку входа
В качестве примера приведу две ситуации, когда мне это понадобилось:
- Добавить Webpack Offline Plugin.
- Сделать сборку только с одним компонентом из приложения.
Добавьте в npm-scripts build:custom :
"scripts": < "build:custom": "node scripts/customBuild.js" >
Затем создайте scripts/customBuild.js :
const webpack = require('react-scripts/node_modules/webpack'); const craWebpackConfig = require('react-scripts/config/webpack.config.prod'); const OfflinePlugin = require('offline-plugin'); const config = < . craWebpackConfig, plugins: [ . craWebpackConfig.plugins, new OfflinePlugin() ] >; webpack(config).run(function(err, stats) < if (err !== null) < console.log('done'); >else < console.log(err); >>);
В этом случае расширится только конфиг Webpack, а не react-scripts build. Не будет красивых логов, сравнения размеров текущего и предыдущего билда и других фич.
Помните, что использование нестандартных загрузчиков (вроде yaml, markdown, dsv loaders и т. д.) и дополнительных плагинов делает ваше приложение сложнее и сложнее. И в некоторых случаях даже невозможно перейти на новый релиз Webpack.
Вот почему я не люблю даже обычные css-loaders для Webpack. Всегда стараюсь подключать только js- или json-модули. CSS-файлы вполне подходят для конфигурации Webpack поля entry. Стараюсь никогда не подключать их с помощью функции require. Это делает приложение максимально зависимым от текущего сборщика.
Babel presets and plugins
Create React App пока не поддерживает расширение babel-конфига. Соответственно декораторы также не поддерживаются.
Я даже делал Pull Request: Adding support for custom babel configuration #1357. Но его уже закрыли, и я полностью согласен с командой Create React App: не стоит засорять приложение кучей настроек.
Декораторы просто облегчают часть работы и можно обойтись без них, и как только они попадут в stage 3, они сразу же будут поддерживаться.

React scripts
Фича, о которой почти никто не знает. Чуть больше информации можно найти в официальном треде на github — Document maintaining a fork of react-scripts as an alternative to ejecting. #682.
React scripts — пакет, в котором реализованы все используемые скрипты (start/test/build) и конфигурирование всех используемых инструментов.
То есть вы можете сделать форк, синхронизировать его с текущей версией и добавить нужный вам функционал.
create-react-app my-app --scripts-version my-super-react-scripts,
где my-super-react-scripts — ваша версия react-scripts.
Например, есть custom-react-scripts с поддержкой декораторов, babel-preset-stage-0, LESS / SASS, CSS Modules (более подробно описано в статье Configure create-react-app without ejecting).
Awesome Create React App
Awesome Create React App — подборка интересных материалов, ожидаемых фич и FAQ. Также представлен список существующих react-scripts версий.
Список ожидаемых фич в версии 0.10.0
При необработанных исключениях показывается диалог с ошибкой, очень похожий на ранее добавленную фичу, — Syntax error overlay. Отображается сообщение об ошибке, стек вызова и строка кода, где произошла ошибка. Диалог может быть скрыт по нажатию на Escape. Ошибка, как и ранее, дублируется в консоли.

Upgrade to webpack v2 #1291
Теперь всем пользователям Create React App нужно просто обновить версию react-scripts (twitter.com/…status/819634786734112768) вместо того, чтобы читать гайды по миграции с Webpack 1 на Webpack 2. Подробнее о Webpack 2 можно почитать в статье Webpack 2 and beyond или What’s new in webpack 2.
Очень клевая фича для асинхронной подгрузки модулей. Ранее для этого использовался require.ensure.
import('./path/to/module).then(module => < // module.default >);
Автоматически запускает eslint для файлов в индексе и форматирует их с помощью prettier перед каждым коммитом.
Пока реализована только как внутренняя фича для самого Create React App, но я очень надеюсь, что добавят в генерируемое приложение.
И много других крутых фич:
- Support node scripts in BROWSER #1590 — возможность выполнять любой nodejs скрипт при старте локального дев сервера;
- Support multiple .env configs #1344;
- Enable page reloading for files in public/ #1546 и т. д.
Нужно относиться к «недостатку конфигурации» как к фиче и ни в коем случае не как к проблеме. Возможностей, которые присутствуют, вполне достаточно для любого приложения.
Делая eject (либо при самостоятельной конфигурации), вы жертвуете всеми текущими фичами CRA (и фичами из новых релизов) ради того, чтобы добавить декораторы или еще какую-то мелочь.
Конфигурирование Webpack, Babel или любого другого инструмента в рамках Create React App сделало бы Create React App более хрупким. И команда Create React App не смогла бы гарантировать идеальную работу и стабильность инструмента. Также это спровоцировало бы появление Create React App Issues, не связанных с Create React App.
- Блог компании Plarium
- JavaScript
- Программирование
- Разработка игр
- ReactJS
Все, что вам нужно знать о react-scripts
В прошлом создание приложения React было болезненным процессом. Вам пришлось пройти через множество настроек, прежде чем вы могли запачкать руки и развить что-то осмысленное.
К счастью, сегодня у нас есть Create React App , удобный модуль, который поставляется с выдающейся конфигурацией, и команда сценариев, которая значительно упрощает создание приложений React.
В этом руководстве мы дадим обзор react-scripts , сравним несколько различных типов сценариев и опишем, насколько create-react-app существенно упрощает процесс разработки React.
Что такое сценарий?
В программировании сценарий — это в основном список инструкций, которые диктуют другой программе, что делать. Реакция не является исключением; у него есть сценарии, чтобы делать вещи.
create-react-app поставляется с четырьмя основными сценариями, каждый из которых мы рассмотрим позже. Но сейчас мы сосредоточимся на том, где найти эти скрипты.
В приложениях React сценарии находятся в файле package.json . В этом файле есть несколько скриптов по умолчанию, но их все еще можно редактировать.
"scripts":
Как видите, свежее приложение React поставляется с четырьмя сценариями, которые используют пакет react-scripts .
Теперь, когда мы знаем, что такое скрипт и где его найти, давайте углубимся в каждый из них и объясним, что он делает с приложением React.
start
React использует Node.js при разработке, чтобы открыть приложение на http://localhost:3000 , поэтому скрипт start позволяет запустить сервер.
Вы можете запустить команду сценария start на терминал с помощью npm или yarn .
yarn start
Или, если вы используете npm:
npm start
Эта команда не только запускает сервер, но также реагирует и отображает последнюю версию при каждом изменении. Кроме того, он покажет ошибки lint на терминале (консоли), когда он не сможет запустить сервер в виде значимых сообщений об ошибках.
test
create-react-app использует Jest в качестве тестов. Скрипт test позволяет запускать тест в интерактивном режиме просмотра. Я не буду слишком глубоко погружаться в тестирование приложений React , но имейте в виду , что любой файл с .test.js или .spec.js расширений будет выполняться при запуске скрипта.
Сценарий test может быть запущен на терминале с помощью следующих команд.
yarn test
npm test
build
React является модульным, поэтому вы можете создавать несколько файлов или компонентов, если хотите. Эти отдельные файлы должны быть объединены или объединены, чтобы быть точными в одном файле.
Это одно из главных преимуществ сценария build . Другой-это производительность; как вы знаете, режим разработки не оптимизирован. А React использует сценарий build для обеспечения того, чтобы готовый проект был объединен, минимизирован и оптимизирован с учетом передового опыта.
Сценарий можно запустить с помощью следующих команд.
yarn build
npm run build
Есть несколько дополнительных опций, которые можно передать скрипту. Посмотрите документы для более глубокого погружения о том, как улучшить ваш сценарий build .
eject
Документация create-react-app характеризует этот сценарий как «однополосная операция» и предупреждает , что «после извлечения, вы не можете вернуться!»
create-react-app поставляется с отличной конфигурацией и помогает создавать приложение React с учетом передовых методов его оптимизации. Однако запуск сценария eject удалит единственную зависимость сборки из вашего проекта. Это означает, что он скопирует файлы конфигурации и транзитивные зависимости (например, Webpack, Babel и т. д.) как зависимости в файле package.json . Если вы сделаете это, вы должны будете убедиться, что зависимости установлены перед созданием вашего проекта.
После запуска команды eject невозможно будет запустить ее снова, так как будут доступны все сценарии, кроме одного eject . Используйте эту команду, только если вам нужно. В противном случае придерживайтесь конфигурации по умолчанию. Во всяком случае, так будет лучше.
Чтобы запустить команду на терминале, введите следующую команду.
yarn eject
npm run build
Вывод
Я надеюсь, что это руководство пролило некоторый свет на удивительную конфигурацию приложения Create React. Он поставляется не только с полезными сценариями, которые могут помочь облегчить жизнь любому разработчику, но и с некоторыми командами, имеющими гибкие параметры, которые позволяют адаптировать сценарии к уникальным потребностям вашего проекта.
Полная видимость в производственных приложениях React

LogRocket похож на видеорегистратор для веб-приложений, записывая буквально все, что происходит в вашем приложении React. Вместо того, чтобы гадать, почему возникают проблемы, вы можете агрегировать и сообщать, в каком состоянии было ваше приложение, когда возникла проблема. LogRocket также отслеживает производительность вашего приложения, предоставляя отчеты с такими показателями, как загрузка ЦП клиента, использование памяти клиента и т. д.
Промежуточный пакет LogRocket Redux добавляет дополнительный уровень видимости в ваши пользовательские сессии. LogRocket записывает все действия и состояние из ваших магазинов Redux.
Источник:
Создание React-приложения: пошаговая инструкция
React.js быстро набирает популярность. Этот инструмент был выпущен в 2013 году, а уже через 7 лет занял второе место в списке веб-фреймворков, которые пользователи выбирают чаще всего.
В 2022 году на нём создано более 100 000 сайтов. В этой статье мы расскажем, что такое React, в чём его преимущества, и как им пользоваться.
Что такое React
React — это не фреймворк в общепринятом понимании, а, скорее, популярная и мощная библиотека JavaScript для построения веб-приложений. Бесплатный инструмент с активным сообществом разработчиков, постоянно расширяет свои границы. Благодаря своей быстрой компонентной архитектуре React востребован среди опытных и начинающих программистов.
React не предоставляет готового решения для разработки приложений, а предлагает инструменты и компоненты для создания индивидуального решения для вашего приложения. Такая гибкость делает ее привлекательной для разработчиков, которые хотят создавать приложения, специально адаптированные под их требования.
В основе React лежит концепция компонентов, представляющих собой фрагменты кода, которые могут многократно использоваться в приложении для упрощения управления кодом и его сопровождения. Компоненты пишутся с помощью HTML-тегов и функций JavaScript, которые обеспечивают необходимую функциональность для создания хорошо структурированного пользовательского интерфейса. Мелкие компоненты могут объединяться в более крупные с помощью композиции или наследования, что позволяет разработчикам легко масштабировать проект, не переписывая код с нуля каждый раз, когда требуется добавить новую функцию.
Помимо компонентной архитектуры, в React используется технология Virtual DOM, которая позволяет отслеживать изменения в пользовательском интерфейсе путем создания «виртуальных» версий HTML-элементов и обновлять только эти элементы по мере необходимости, а не заставлять браузер перерисовывать всю HTML-разметку каждый раз, когда на экране происходит обновление. Такой подход позволяет сократить лишние затраты на рендеринг и значительно повысить общую производительность, что делает React особенно удобным при разработке сложных пользовательских интерфейсов, например, в играх или визуализации данных.
Основные преимущества JS-библиотеки
Самой известной библиотекой для React считается JS – отличный источник информации как для разработчиков, так и для предприятий, поскольку обладает многочисленными преимуществами по сравнению с другими доступными библиотеками.
- Высокая производительность при создании нового проекта.
Она обеспечивает быстрый и надежный процесс разработки, а также имеет оптимизированные компоненты, что даёт возможность быстро создавать приложения с минимальными усилиями.
- Широкий набор инструментов.
Библиотека содержит большое количество встроенных функций, поэтому не нужно тратить время на их самостоятельное создание. Это тоже значительно упрощает и ускоряет создание проекта React, а также делает их экономически эффективными, поскольку требуется меньше ресурсов.
- Удобство использования и высокая производительность.
В JavaScript-библиотеку React включены множество пакетов для таких распространенных задач, как получение и проверка данных, поэтому процесс разработки становится ещё более эффективным.
- Гибкость, подходящая для проектов разного размера.
Гибкость JS-библиотеки делает ее идеальным решением как для малых, так и для крупных проектов, поскольку изменения можно вносить быстро, не переписывая с нуля все приложение или его раздел при необходимости модификации. Её масштабируемость со временем означает уменьшение технических проблем, поскольку она способна легко обрабатывать большие массивы данных.
- Масштабируемость, позволяющая работать с большими кусками данных.
Добавление новых функций с помощью JS-библиотеки становится относительно простым благодаря компонентному подходу, который позволяет легко добавлять новые функции в существующие модули, не требуя никаких дополнительных усилий по кодированию, кроме, может быть, настройки конфигурации, если это необходимо, при создании некоторых компонентов для повторного использования.
Инструкция: как создать React-приложение
Этот простой процесс состоит из 4 этапов.
Сначала нужно поставить Node.js, так как среди его компонентов есть менеджер пакетов npm, который требуется для загрузки Create React App.
В терминале пишем команду.
file_path\react>npm install create-react-app -g
Вместо «file_path» пропишите актуальный путь, по которому будет расположен проект. Дождитесь завершения процесса.
- Создание нового React-приложения.
Теперь нужна другая команда.
В данном случае «new-app» — это название вашего проекта, замените его.
Система выдаст сообщение о выполнении процесса, а также проинформирует, какие команды и для чего вы можете применять.
Открываем новое приложение в редакторе и видим в нём 2 папки.
В «public» есть файл index.html, а в «src» — index.js. Менять или удалять их недопустимо, другие элементы разрешается корректировать, задавать новые названия и т.д, это никак не отразится на работоспособности приложения.
Настройка выполняется через файл package.json
Дальше настраиваем приложение с использованием команд. Поскольку существуют зависимости от скриптов, рассмотрим несколько основных.
Это скрипт для запуска. Проект откроется в браузере, при этом в случае изменений файлов в папке «Src» проект автоматически обновляется и показывает актуальную версию.
- Скрипт run build
Скрип позволяет сделать рабочую версию проекта. Нужные для запуска файлы будут объединены, представив сборку, имеющую всё необходимое для корректного отображения.
После формирования минифицированной версии система даст возможность вручную развернуть приложение.
С помощью команды «run build» также можно проверить размер файлов после компиляции. Также у папок в этом случае появится дополнительна директория build.
Команда актуальна, когда нужно проверить работу приложения. Система найдёт файлы spec.js или test.js, а затем запустит их, предоставив отчёт о совершённом действии.
Другие команды для проверки представлены в Watch Usage. Например, «F» проверяет файлы failed, «O» применяется для скорректированных файлов.
Если стандартные элементы не соответствует задачам, это можно исправить с помощью представленной выше команды.
Будьте внимательны, процесс изменения необратим, об этом система вас проинформирует.
Если всё равно решили продолжить, подтвердите действие. Как только процесс завершится, станет доступна папка «config». В ней находится файл package.json, содержащий зависимости проекта.
Как изменить корневую страницу
Её можно редактировать после запуска, настройки нужно искать в папке «Public».
- favicon.ico, logo192.png, logo512.png – это знаки, отображающиеся в браузере или мобильной версии.
- manifest.json – это методанные.
- robots.txt – команды для поисковых роботов.
- index.html – основа директории, которая считывается сервером. В нём обязательно должен остаться хотя бы один элемент
Как изменить заголовки и стили
Теперь рассмотрим файлы в папке Src. SetupTests.js и App.test.js – требуются для запуска проекта в тестовом режиме. App.css, index.css и logo.svg – это файлы стилей. App.js и index.js помогают импортировать и преобразовывать элементы в JavaScript. ServiceWorker.js актуален для сложных задач. Если нужно обнулить настройки, вводим следующую команду. @import-normalize Как подготовить приложение к развёртке Как мы уже выяснили, сборка приложения осуществляется с помощью команды run build. В результате создаётся дополнительная директория build с файлом index.html, где уже создан готовый код. Его необходимо запустить на сервере.
Эффективность работы приложения также зависит от выбора сервера. Наиболее надёжный способ хранения данных — аренда выделенного сервера.
Ошибки при работе с React-приложениями
В заключение, при работе с React-приложениями неизбежно возникают ошибки. Однако, зная эти распространенные ошибки и умея их избегать или исправлять, вы можете значительно улучшить качество своего кода и оптимизировать работу приложения. Рассмотрим некоторые из наиболее распространенных проблем при работе с React, и предложим способы их решения.
- Применение крупных компонентов.
React позволяет создавать множество компонентов, что обеспечивает модульность и дальнейшее использование кода. Однако иногда разработчики склонны создавать очень большие компоненты, которые выполняют слишком много функций. Это может привести к трудностям в понимании кода и поддержке приложения.
Решение: разделите большие компоненты на более мелкие и специализированные. Такой подход позволяет легче понять функцию каждого компонента и повторно использовать его в других частях приложения.
- Изменение состояния.
Это одна из ключевых возможностей React. Однако некорректное изменение состояния может привести к неожиданному поведению приложения или даже к его поломке.
Решение: изменяйте состояние компонента, обращаясь исключительно к методу setState. Это гарантирует, что React правильно обновит компонент и его дочерние элементы. Кроме того, следует избегать изменения состояния напрямую.
- Строчная передача числа.
Если задать реквизиту числовое значение, отображение будет в виде first/last.
Решение: заключайте числа в фигурные скобки.
- Регулярное использование Redux.
Некоторые разработчики могут часто использовать Redux даже для незначительных изменений состояния.
Решение: запускайте Redux только для управления сложным глобальным состоянием приложения.
- Нарушение структуры папок
Структура папок — это важная часть организации проекта. Однако некоторые разработчики могут создавать неструктурированные папки или размещать компоненты в неправильных местах.
Решение: создавайте структурированные папки в соответствии с принятыми стандартами и лучшими практиками. Например, можно разделить компоненты по типу или по функциональности.
Подведём итоги
React становится всё более популярным среди веб-разработчиков в первую очередь потому, что он упрощает сложные задачи разработки, но при этом обеспечивает гибкость в настройке. Это позволяет разработчикам создавать надежные решения, ориентированные именно на их конкретные потребности и обеспечивающие масштабируемость в будущем. А рекомендации, представленные в этой статье, позволят избежать ошибок при развёртке приложений.