{"componentChunkName":"component---src-templates-docs-js","path":"/docs/create-a-new-react-app.html","result":{"data":{"markdownRemark":{"html":"<p>Используйте встроенный набор инструментов для лучшего взаимодействия пользователя и разработчика. </p>\n<p>На этой странице описано несколько популярных наборов инструментов React, которые помогают в таких задачах как:</p>\n<ul>\n<li>Масштабирование до большого количества файлов и компонентов.</li>\n<li>Использование сторонних библиотек из npm.</li>\n<li>Раннее обнаружение распространённых ошибок.</li>\n<li>Отражение изменений CSS и JS на лету в процессе разработки.</li>\n<li>Оптимизация кода для продакшена.</li>\n</ul>\n<p>Рекомендованные на этой странице инструменты <strong>не требуют дополнительной настройки для начала работы.</strong></p>\n<h2 id=\"you-might-not-need-a-toolchain\"><a href=\"#you-might-not-need-a-toolchain\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Возможно, вам не нужен дополнительный набор инструментов </h2>\n<p>Если у вас нет проблем, описанных выше, или пока не чувствуете себя уверенно, используя инструменты JavaScript, рассмотрите возможность <a href=\"/docs/add-react-to-a-website.html\">добавления React в виде простого тега <code class=\"gatsby-code-text\">&lt;script&gt;</code> на HTML странице</a>, <a href=\"/docs/add-react-to-a-website.html#optional-try-react-with-jsx\">при необходимости с JSX</a>.</p>\n<p>Также это <strong>самый простой способ добавить React в существующий веб-сайт</strong>. Вы всегда можете расширить набор инструментов, если посчитаете это нужным.</p>\n<h2 id=\"recommended-toolchains\"><a href=\"#recommended-toolchains\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Рекомендуемый набор инструментов </h2>\n<p>Команда React в первую очередь рекомендует следующие решения:</p>\n<ul>\n<li>Если вы <strong>изучаете React</strong> или <strong>создаёте новое <a href=\"/docs/glossary.html#single-page-application\">одностраничное</a> приложение</strong>, используйте <a href=\"#create-react-app\">Create React App</a>.</li>\n<li>Если вы создаёте <strong>серверный сайт с Node.js,</strong> попробуйте <a href=\"#nextjs\">Next.js</a>.</li>\n<li>Если вы создаёте <strong>статический контент-ориентированный сайт,</strong> попробуйте <a href=\"#gatsby\">Gatsby</a>.</li>\n<li>Если вы создаёте <strong>библиотеку компонентов</strong> или <strong>интегрируетесь с существующей кодовой базой</strong>, попробуйте <a href=\"#more-flexible-toolchains\">более гибкие наборы инструментов</a>.</li>\n</ul>\n<h3 id=\"create-react-app\"><a href=\"#create-react-app\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Create React App </h3>\n<p><a href=\"https://github.com/facebookincubator/create-react-app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Create React App</a> — удобная среда для <strong>изучения React</strong> и лучший способ начать создание <strong>нового <a href=\"/docs/glossary.html#single-page-application\">одностраничного</a> приложения</strong> на React.</p>\n<p>Инструмент настраивает среду для использования новейших возможностей JavaScript, оптимизирует приложение для продакшена и обеспечивает комфорт во время разработки. Вам понадобятся <a href=\"https://nodejs.org/ru/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node.js не ниже версии 8.10 и npm не ниже версии 5.6</a> на вашем компьютере. Для создания проекта выполните команды:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"gatsby-code-bash\"><code class=\"gatsby-code-bash\">npx create-react-app my-app\n<span class=\"token builtin class-name\">cd</span> my-app\n<span class=\"token function\">npm</span> start</code></pre></div>\n<blockquote>\n<p>Примечание</p>\n<p><code class=\"gatsby-code-text\">npx</code> в первой строке не является опечаткой. Это <a href=\"https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">инструмент запуска пакетов, доступный в версиях npm 5.2 и выше</a>.</p>\n</blockquote>\n<p>Create React App не обрабатывает бэкенд логику или базы данных, он только предоставляет команды для сборки фронтенда, поэтому вы можете использовать его с любым бэкэндом. «Под капотом» используются <a href=\"https://babeljs.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Babel</a> и <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">webpack</a>, но вам не нужно ничего знать о них.</p>\n<p>Когда ваше приложение готово к развёртыванию в продакшене, запуск команды <code class=\"gatsby-code-text\">npm run build</code> создаст оптимизированную сборку вашего приложения в папке <code class=\"gatsby-code-text\">build</code>. Вы можете узнать больше о Create React App <a href=\"https://github.com/facebookincubator/create-react-app#create-react-app--\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">из его README</a> и <a href=\"https://facebook.github.io/create-react-app/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">его пользовательского руководства</a>.</p>\n<h3 id=\"nextjs\"><a href=\"#nextjs\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Next.js </h3>\n<p><a href=\"https://nextjs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Next.js</a> — это популярный легковесный фреймворк для <strong>статических и серверных приложений</strong>, использующих React. Он включает в себя <strong>готовые решения для стилизации и маршрутизации</strong> и предполагает, что вы используете <a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node.js</a> в качестве серверной среды.</p>\n<p>Узнайте больше о Next.js из <a href=\"https://nextjs.org/learn/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">его официального руководства</a>. </p>\n<h3 id=\"gatsby\"><a href=\"#gatsby\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Gatsby </h3>\n<p><a href=\"https://www.gatsbyjs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Gatsby</a> — лучший способ для создания <strong>статических сайтов</strong> с помощью React. Он позволяет использовать React-компоненты, но выводит предварительно отрендеренный HTML и CSS, чтобы гарантировать минимальное время загрузки.</p>\n<p>Узнайте больше о Gatsby из <a href=\"https://www.gatsbyjs.org/docs/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">его официального руководства</a> и <a href=\"https://www.gatsbyjs.org/docs/gatsby-starters/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">галереи стартовых комплектов</a>.</p>\n<h3 id=\"more-flexible-toolchains\"><a href=\"#more-flexible-toolchains\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Более гибкие наборы инструментов </h3>\n<p>Следующие наборы инструментов предлагают больше гибкости и выбора. Мы рекомендуем их более опытным разработчикам:</p>\n<ul>\n<li><strong><a href=\"https://neutrinojs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Neutrino</a></strong> сочетает в себе возможности <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">webpack</a> и простоту пресетов. Инструмент включает в себя пресеты для <a href=\"https://neutrinojs.org/packages/react/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">React-приложений</a> и <a href=\"https://neutrinojs.org/packages/react-components/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">React-компонентов</a>.</li>\n<li><strong><a href=\"https://nx.dev/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Nx</a></strong> — набор инструментов для ведения фулстэк разработки в монорепозиториях, который обладает встроенной поддержкой React, Next.js, <a href=\"https://expressjs.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Express</a> и так далее.</li>\n<li><strong><a href=\"https://parceljs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Parcel</a></strong> — быстрый упаковщик веб-приложений с нулевой конфигурацией, <a href=\"https://parceljs.org/recipes.html#react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">который работает с React</a>.</li>\n<li><strong><a href=\"https://github.com/jaredpalmer/razzle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Razzle</a></strong> — это фреймворк для серверного рендеринга, более гибкий чем Next.js, но не требующий обязательной настройки.</li>\n</ul>\n<h2 id=\"creating-a-toolchain-from-scratch\"><a href=\"#creating-a-toolchain-from-scratch\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Создание набора инструментов с нуля </h2>\n<p>В набор инструментов для сборки JavaScript обычно входят:</p>\n<ul>\n<li><strong>Менеджер пакетов</strong>, такой как <a href=\"https://yarnpkg.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Yarn</a> или <a href=\"https://www.npmjs.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">npm</a>. Он позволяет вам использовать обширную экосистему сторонних пакетов и легко устанавливать или обновлять их.</li>\n<li><strong>Сборщик</strong>, такой как <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">webpack</a> или <a href=\"https://parceljs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Parcel</a>. Он позволяет писать модульный код и объединять его в небольшие пакеты, чтобы оптимизировать время загрузки.</li>\n<li><strong>Компилятор</strong>, такой как <a href=\"https://babeljs.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Babel</a>. Он позволяет писать современный код JavaScript, который будет работать даже в старых браузерах.</li>\n</ul>\n<p>Если вы предпочтёте создать свой собственный набор JavaScript-инструментов с нуля, <a href=\"https://blog.usejournal.com/creating-a-react-app-from-scratch-f3c693b84658\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ознакомьтесь с этим руководством</a>, в котором воссоздаются некоторые функции Create React App.</p>\n<p>Не забудьте убедиться, что ваш набор инструментов <a href=\"/docs/optimizing-performance.html#use-the-production-build\">правильно настроен для продакшена</a>.</p>","frontmatter":{"title":"Создаём новое React-приложение","next":"cdn-links.html","prev":"add-react-to-a-website.html"},"fields":{"path":"content/docs/create-a-new-react-app.md","slug":"docs/create-a-new-react-app.html"}}},"pageContext":{"slug":"docs/create-a-new-react-app.html"}},"staticQueryHashes":[]}