{"componentChunkName":"component---src-templates-docs-js","path":"/docs/create-a-new-react-app.html","result":{"data":{"markdownRemark":{"html":"<p>Use uma toolchain integrada para uma melhor experiência de usuário e desenvolvedor.</p>\n<p>Esta página descreve algumas toolchains populares com React que ajudam em tarefas como:</p>\n<ul>\n<li>Escalar para muitos arquivos e componentes.</li>\n<li>Usar bibliotecas de terceiros através do npm.</li>\n<li>Detectar erros comuns cedo.</li>\n<li>Edição em tempo real de CSS e JS em desenvolvimento.</li>\n<li>Otimizar a saída para produção</li>\n</ul>\n<p>As toolchains recomendadas nesta página <strong>não requerem configuração para começar</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>Você Pode Não Precisar de Uma Toolchain </h2>\n<p>Se você não se depara com nenhum dos problemas descritos acima, ou se ainda não se sente confortável usando ferramentas JavaScript, considere <a href=\"/docs/add-react-to-a-website.html\">simplesmente adicionar uma tag <code class=\"gatsby-code-text\">script</code> numa página HTML</a>, opcionalmente <a href=\"/docs/add-react-to-a-website.html#optional-try-react-with-jsx\">usando JSX</a>.</p>\n<p>Esta é <strong>a maneira mais fácil de integrar React a um site já existente.</strong> Você pode a qualquer momento adicionar à toolchain conforme achar útil.</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>Toolchains Recomendadas </h2>\n<p>A equipe React recomenda principalmente as seguintes soluções:</p>\n<ul>\n<li>Se você está <strong>aprendendo React</strong> ou <strong>criando um novo <a href=\"/docs/glossary.html#single-page-application\">single-page</a> app,</strong> use <a href=\"#create-react-app\">Create React App</a>. </li>\n<li>Se você está fazendo um <strong>site renderizado no servidor (SSR) com Node.js,</strong> tente <a href=\"#nextjs\">Next.js</a>.</li>\n<li>Se você está fazendo um <strong>site estático orientado a conteúdo,</strong> experimente <a href=\"#gatsby\">Gatsby</a>.</li>\n<li>Se você está montando uma <strong>biblioteca de componentes</strong> ou <strong>integrando com um código-base existente</strong>, veja <a href=\"#more-flexible-toolchains\">Toolchains Mais Flexíveis</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> é um ambiente confortável para <strong>aprender React</strong>, e é a melhor maneira de começar um <strong><a href=\"/docs/glossary.html#single-page-application\">single-page</a> application</strong> em React. </p>\n<p>Além de configurar seu ambiente de desenvolvimento para utilizar as funcionalidades mais recentes do JavaScript, ele fornece uma experiência de desenvolvimento agradável, e otimiza o seu app para produção. Será necessário ter <a href=\"https://nodejs.org/pt-br/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node >= 8.10 e npm >= 5.6</a> na sua máquina. Para criar um novo projeto, rode:</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>Nota</p>\n<p><code class=\"gatsby-code-text\">npx</code> na primeira linha não é erro de digitação — é um <a href=\"https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">package runner que vem com npm 5.2+</a>.</p>\n</blockquote>\n<p>Create React App não lida com lógica de backend nem banco de dados. Ele apenas cria um build pipeline para o frontend, podendo portanto ser utilizado com qualquer backend de sua escolha. Por trás, <a href=\"https://babeljs.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Babel</a> e <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Webpack</a> estão sendo utilizados, mas não é necessário saber nada sobre eles.</p>\n<p>Quando estiver pronto pra mandar pra produção, rode <code class=\"gatsby-code-text\">npm run build</code> para criar e mandar o build otimizado de seu app para a pasta <code class=\"gatsby-code-text\">build</code>. Você pode saber mais sobre o Create React App <a href=\"https://github.com/facebookincubator/create-react-app#create-react-app--\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">através de seu README</a> e o <a href=\"https://facebook.github.io/create-react-app/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Guia de Usuário</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> é um framework leve e popular para <strong>aplicações estáticas e renderizadas no servidor</strong> feito com React. Ele inclui <strong>soluções para estilização e roteamento</strong> prontas, e presume que esteja rodando <a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node.js</a> como ambiente de servidor.</p>\n<p>Aprenda Next.js através de <a href=\"https://nextjs.org/learn/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">seu guia oficial</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> é a melhor forma de criar <strong>sites estáticos</strong> usando React. Ele permite usar componentes React, porém produzindo HTML e CSS pré-renderizado para garantir a velocidade mais rápida possível de carregamento.</p>\n<p>Aprenda Gatsby através de <a href=\"https://www.gatsbyjs.org/docs/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">seu guia oficial</a> e a <a href=\"https://www.gatsbyjs.org/docs/gatsby-starters/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">galeria de starter kits</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>Toolchains Mais Flexíveis </h3>\n<p>As seguintes toolchains oferecem mais flexibilidade e escolha. Nós as recomendamos para usuários mais experientes:</p>\n<ul>\n<li><strong><a href=\"https://neutrinojs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Neutrino</a></strong> combina o poder do <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">webpack</a> com a simplicidade de presets, e inclui um preset para <a href=\"https://neutrinojs.org/packages/react/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">React apps</a> e <a href=\"https://neutrinojs.org/packages/react-components/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">React components</a>.</li>\n<li><strong><a href=\"https://nx.dev/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Nx</a></strong> é um kit de ferramentas para o desenvolvimento de monorepo de stack completa, com suporte interno para o React, Next.js, <a href=\"https://expressjs.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Express</a>, e mais.</li>\n<li><strong><a href=\"https://parceljs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Parcel</a></strong> é um bundler de aplicativos web rápido e sem configuração que <a href=\"https://parceljs.org/recipes.html#react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">funciona com React</a>. </li>\n<li><strong><a href=\"https://github.com/jaredpalmer/razzle\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Razzle</a></strong> é um framework renderizado no servidor que não requer configuração, porém oferece mais flexibilidade que o 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>Criando uma Toolchain do Zero </h2>\n<p>Uma build toolchain em JavaScript consiste tipicamente de:</p>\n<ul>\n<li>Um <strong>gerenciador de pacotes</strong>, como <a href=\"https://yarnpkg.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Yarn</a> ou <a href=\"https://www.npmjs.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">npm</a>. Ele permite aproveitar de um vasto ecosistema de pacotes de terceiros, e facilmente instalar e atualizá-los.</li>\n<li>Um <strong>bundler</strong>, como <a href=\"https://webpack.js.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">webpack</a> ou <a href=\"https://parceljs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Parcel</a>. Ele permite escrever código modular e empacotá-lo em pequenos pedaços para otimizar o tempo de carregamento.</li>\n<li>Um <strong>compilador</strong> como <a href=\"https://babeljs.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Babel</a>. Ele nos permite escrever código JavaScript moderno que funcione até nos navegadores mais antigos.</li>\n</ul>\n<p>Se você prefere criar a sua própria JavaScript toolchain do zero, <a href=\"https://blog.usejournal.com/creating-a-react-app-from-scratch-f3c693b84658\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">dê uma olhada neste guia</a> que recria algumas das funcionalidades do Create React App.</p>\n<p>Não se esqueça de assegurar que sua toolchain customizada <a href=\"/docs/optimizing-performance.html#use-the-production-build\">esteja corretamente configurado para produção</a>.</p>","frontmatter":{"title":"Crie um novo React App","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":[]}