<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Betina Costa on Medium]]></title>
        <description><![CDATA[Stories by Betina Costa on Medium]]></description>
        <link>https://medium.com/@becosta?source=rss-316356c45192------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*N5qOz6fBFuSDTSsXjvS_mw.jpeg</url>
            <title>Stories by Betina Costa on Medium</title>
            <link>https://medium.com/@becosta?source=rss-316356c45192------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 03:01:16 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@becosta/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Fazendo o deploy de uma aplicação React Para o Heroku.]]></title>
            <link>https://medium.com/@becosta/https-medium-com-becosta-fazendo-deploy-de-um-app-react-para-o-heroku-45ff30003c4a?source=rss-316356c45192------2</link>
            <guid isPermaLink="false">https://medium.com/p/45ff30003c4a</guid>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[heroku]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[create-react-app]]></category>
            <dc:creator><![CDATA[Betina Costa]]></dc:creator>
            <pubDate>Thu, 11 Apr 2019 20:25:13 GMT</pubDate>
            <atom:updated>2019-04-11T20:25:13.750Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1GcORm1jHP5av_IFCYoZLg.png" /><figcaption>Logo do react ao lado de “+Express” e “+Heroku” com o logo de casa um</figcaption></figure><p>Ao longo da minha vida de programadora, fazer o deploy de aplicações para o Heroku é algo que constantemente m̶e̶ ̶f̶a̶z̶ ̶p̶a̶s̶s̶a̶r̶ ̶r̶a̶i̶v̶a me gera algumas dificuldades. Minha mais recente aventura, foi fazer o deploy de um simples projeto REACT e para isso, eu segui um <a href="https://medium.com/jeremy-gottfrieds-tech-blog/tutorial-how-to-deploy-a-production-react-app-to-heroku-c4831dfcfa08">tutorial</a> muito bom do <a href="https://medium.com/u/9b5a505b367a">Jeremy Gottfried</a> e achei que seria bom criar um material parecido em português e fazer algumas correções de problemas que encontrei no cominho. Vamos lá?</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F1C8bHHJturSx2%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fthe-it-crowd-chris-odowd-1C8bHHJturSx2&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F1C8bHHJturSx2%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="234" frameborder="0" scrolling="no"><a href="https://medium.com/media/c371e2a3f3bee7c24bb6f24c690492fb/href">https://medium.com/media/c371e2a3f3bee7c24bb6f24c690492fb/href</a></iframe><h3>1. Pré-Requisitos</h3><ul><li><a href="https://nodejs.org/en/">NodeJS e npm</a>;</li><li><a href="https://yarnpkg.com/en/">Yarn</a>;</li><li><a href="https://devcenter.heroku.com/articles/heroku-cli#download-and-install">Heroku CLI</a>;</li><li><a href="https://git-scm.com/">Git</a>;</li></ul><h3>2. Criar um App React</h3><p>Antes de mais nada, precisamos criar um app React, é possível fazer isso manualmente, porém o Facebook criou o módulo de criação create-react-app para gerar uma versão padrão de um aplicativo React. Vamos adicionar esse módulo e usá-lo para criar nossa aplicação.</p><pre>npm install -g create-react-app</pre><pre>npx create-react-app batata-deploy</pre><pre>cd batata-deploy</pre><p><strong><em>OBS.:</em></strong><em> Lembre de substituir </em><em>batata-deploy pelo nome da sua aplicação :)</em></p><p>Você pode abrir o projeto em um editor de texto da sua preferência, eu particularmente gosto muito do <a href="https://code.visualstudio.com/">VScode</a>.</p><h3>3. Criar um servidor Express JS</h3><p>Aqui vamos criar um servidor Node para minificar JavaScript. Isso irá possibilitar que a nossa aplicação funcione após ser deployada.</p><p>Na raiz do nosso repositório, vamos criar um arquivo chamado server.js</p><pre>touch server.js</pre><p>Abra o arquivo e cole o código abaixo:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f6872fac94118eee27a8a7bab1849ebc/href">https://medium.com/media/f6872fac94118eee27a8a7bab1849ebc/href</a></iframe><p>Para que nosso servidor funcione, precisamos adicionar express, express-favicon, e path as nossas dependências:</p><pre>yarn add express express-favicon path</pre><p>Para finalizar, temos que dizer para o package.json rodar nossa aplicação através desse servidor. Noexpress vamos substituir o start por:</p><pre>start: &quot;node server.js&quot;</pre><h3>4. Criar um Build de Produção</h3><p>Para criar um build de produção, precisamos rodar o seguinte comando que criará uma pasta de build:</p><pre>yarn build</pre><p>Para finalizar, temos que adicionar as seguintes linhas ao nosso .gitignore…</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/53388d43bd36ea47e7c6177bdd5fcdc4/href">https://medium.com/media/53388d43bd36ea47e7c6177bdd5fcdc4/href</a></iframe><p>… E remover a seguinte linha do mesmo:</p><pre>/build</pre><p>Fazemos isso para que somente os JS e CSS minificados sejam publicados.</p><h3>5. Adicionar NodeJS ao package.json</h3><p>Ao tentar fazer o deploy para o Heroku após as 4 partes anteriores, eu recebi um erro referente a não identificação de node no projeto. Após olhar melhor o erro e ler a documentação do Heroku, descobri que para que ele possa identificar corretamente o node, precisamos colocar isso explicitamente no package.json:</p><pre>{<br>   &quot;name&quot;: &quot;batata-deploy&quot;,<br>   &quot;version&quot;: &quot;0.1.0&quot;,<br>   <strong>&quot;engines&quot;: {<br>      &quot;node&quot;: &quot;10.15.3&quot;<br>   }</strong><br>[...]</pre><p><strong><em>OBS.: </em></strong><em>O numero da versão do node deve ser o mesmo que o que você tem instalado na sua máquina. Para descobrir, basta executar </em>node -v<em> no terminal :)</em></p><h3>6. Criar Procfile</h3><p>Aplicativos Heroku incluem um Procfile que especifica os comandos que serão executados pelo aplicativo na inicialização. Na maioria das vezes, aplicações node conseguem ser identificadas pelo Heroku sem o Procfile, mas para evitar p̶̶̶a̶̶̶s̶̶̶s̶̶̶a̶̶̶r̶̶̶ ̶̶̶r̶̶̶a̶̶̶i̶̶̶v̶̶̶a̶̶̶ perder tempo, vamos criar o arquivo…</p><pre>touch Procfile</pre><p>… E adicionar o seguinte conteúdo:</p><pre>web: node server.js</pre><h3>7. Fazer Deploy para o Heroku</h3><p>Para esse passo é importante ter uma conta criada no Heroku, caso você não tenha, pode criar uma nesse <a href="https://signup.heroku.com/">link</a>. Agora, necessitamos fazer login com suas credenciais pelo terminal:</p><pre>heroku login</pre><p>Agora que já estamos logados, podemos criar uma aplicação no Heroku através do comando:</p><pre>heroku create batata-deploy</pre><p>Antes de fazer o deploy da nossa aplicação, é necessário excluir o arquivo yarn.lock da raiz do nosso projeto para o Heroku não se perder.</p><p><strong><em>OBS.:</em></strong><em> Não tenho certeza de porque isso é necessário, mas foi algo que me causou muita dor de cabeça. De inicio, achei que isso ocorria por ter o yarn e o npm no projeto, porém ao tentar apenas com um deles tive o mesmo problema e decidi seguir a recomendação do </em>̶s̶t̶a̶c̶k̶o̶v̶e̶r̶f̶l̶o̶w̶<em> profissionais super qualificadas e de confiança.</em></p><p>Feito isso, podemos prosseguir para o deploy:</p><pre>git init # inicializar repositório<br>git add . # adicionar as mudanças<br>git commit -m &quot;It&#39;s Aliveeeee&quot; # comittar mudanças<br>heroku git:remote -a batata-deploy # adicionar remote<br>git push heroku master # fazer o push da aplicação</pre><p><strong><em>OBS.:</em></strong><em> Caso você já tenha inicializado o seu repositório, basta executar os últimos dois passos.</em></p><p>Parabéns! S̶e̶ ̶t̶u̶d̶o̶ ̶d̶e̶r̶ ̶c̶e̶r̶t̶o̶ Agora você tem uma aplicação deployada no Heroku!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FXGSqXkATD3Akw%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fexcited-happynewyears-XGSqXkATD3Akw&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FXGSqXkATD3Akw%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="407" frameborder="0" scrolling="no"><a href="https://medium.com/media/bacbc4f5eff9d541d53c505dfea68c31/href">https://medium.com/media/bacbc4f5eff9d541d53c505dfea68c31/href</a></iframe><p>Para acessar sua aplicação, basta executar essa linha no terminal:</p><pre>heroku open</pre><p>Pronto! Vocês podem ver o resultado final (e outras coisas mais) no meu <a href="https://github.com/betinacosta/rollinitiative">github</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=45ff30003c4a" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>