{"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/uk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node версії >= 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":[]}