{"componentChunkName":"component---src-templates-single-template-tsx","path":"/usando-browsersync-em-uma-aplicacao-ruby-on-rails","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://blog.nandomoreira.dev","author":{"name":"Fernando Moreira","site":"https://nandomoreira.dev","social":{"disqus":"fernandomoreira"}}}},"markdownRemark":{"html":"<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 87.87085514834206%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsSAAALEgHS3X78AAACWElEQVQ4y62Uy45SQRCGWbgw8TnYw4L7zXC/rEh4BBeuJC58C1254x1MWAqJIeAGEdyghAz3e5jAcC4wDKf7dFndMOPoQMKolfyhc07znb+qu8rQb1ZfDocXr2ejSVqS5fRms0nP5/P0ZDJJz2azo5pOp/f1Cve+aTabDgOPb1+/QK/dgh/174APYTAYQLfbhVarBe12W6jT6fwm/r7X6wnx96PRCHK53HsB9JvMksvtZmazWTMajcRkMhGn00lsNhux2+1CVqtVyGKxEIfDQbxeLwkGgyQUCnHdRKNRwGdvBfC5zab6/X5w76Esm82y8XjMhsMhG/T7Yi1JElutVkJ8/YeIruvQaDTeCWAoHFZjsRjgV5jH44FCoQCapsF6swFFVUFdr4Exdko8KGCggT0wjMB4PA6YAkOXAshDWi6BXF8D4NcZ17nASCSiJhIJQJcCWCwWBXAry6ChKLqkhAjAkbgD4sH8AvKU0SXDwkKpVBI7sTBAEUK4KAVepwPhqMM7ILp7UEMey/kc5MUCsKAAlB6DHQfiCat49IASKd86vFEU2KFEytvt+SmfAmroiu98dMr3gbcpUwQsLy9hMZ0C7HbipP85ZYpXRse7KICHdB8NRIcMrw3/N1MUha1kWQiHBl5FnZ2IB0A5EAgAiqBDikC+gcqyTFdXVxTbjcqSRHEKUewgygEIF7+H9e5wsfe9jB2iJ5NJSKVSwHu6VqvB3wSOsf20wSnyweVyffL5fDkcDvlMJpOv1+v5crmcr1Qq5+hjtVr9jOPrheEQT1HP/oOeoFHDTyfyHM6XrybjAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/bc904/painel-browsersync-io.webp 250w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/4be29/painel-browsersync-io.webp 500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/03f31/painel-browsersync-io.webp 1000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/9579c/painel-browsersync-io.webp 1500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/b1218/painel-browsersync-io.webp 2000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/a6f75/painel-browsersync-io.webp 2292w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/43fa5/painel-browsersync-io.png 250w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/c6e3d/painel-browsersync-io.png 500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/da8b6/painel-browsersync-io.png 1000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/2e9ed/painel-browsersync-io.png 1500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/9fabd/painel-browsersync-io.png 2000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/973bc/painel-browsersync-io.png 2292w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/da8b6/painel-browsersync-io.png\"\n          alt=\"Usando Browsersync em uma aplicação Ruby on Rails\"\n          title=\"Usando Browsersync em uma aplicação Ruby on Rails\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Usando Browsersync em uma aplicação Ruby on Rails</figcaption>\n  </figure></p>\n<p>Aplicações Rails são magníficas não é mesmo? Todas aquelas Gems \"mágicas\", que fazem de tudo e um pouco mais, são lindas de se ver.</p>\n<p>Mas e se eu quiser algo ainda mais \"supimpa\" pra fazer o meu <em>front-end</em>? E se eu não quiser sair do Rails? Será que existe algo que sincronize todos os navegadores possíveis ou que me de históricos e ferramentas para debug do <em>front-end</em>, será que existe uma Gem assim para Rails?</p>\n<p>Eu procurei pelo Google a fora uma Gem que fizesse essa magia toda, mas não encontrei nada tão bom quanto o <strong><a href=\"https://www.browsersync.io/\">Browsersync</a></strong>, e se você não conhece o <strong>Browsersync</strong> recomendo dar uma lida <a href=\"http://blog.caelum.com.br/browser-sync-indispensavel-para-desenvolver-sites-em-varios-dispositivos/\">nesse artigo que a Caelum escreveu</a>.</p>\n<blockquote>\n<p>ℹ️ Se você é <em>front-end</em> e não conhece o <strong>Browsersync</strong> eu recomendo fortemente que leia sobre ele e comece imediatamente a usar, é uma ferramenta indispensável no cinto de utilidades do Batman!</p>\n</blockquote>\n<h3>Ruby on Rails</h3>\n<p>O intuito desse post não é explicar sobre o Rails e suas <a href=\"http://i.imgur.com/NpWtG3j.gif\">\"Magic\"</a> Gems, e sim como integrar e usar o Browsersync dentro de uma app Rails.</p>\n<p>Primeiro de tudo você precisa de uma aplicação Rails já instalada em sua máquina (a vá! jura? 😱), logo após essa façanha instale o Browsersync global (sim tem que ser global).</p>\n<h3>Instalando o Browsersync</h3>\n<p>Para instalar o Browsersync global basta usar o comando abaixo.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g browsersync</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Assim que a instalação estiver finalizada execute o seguinte comando para saber se tudo está funcionando.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ browser-sync --version</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>O comando acima irá te mostrar qual a versão do Browsersync foi instalada na sua máquina, aqui instalou a versão <code class=\"language-text\">2.13.0</code>.</p>\n<h3>Usando Browsersync dentro do Rails</h3>\n<p>Se você ainda não sabe o Rails sobe um servidor nativo com o comando <code class=\"language-text\">rails server</code> ou apenas <code class=\"language-text\">rails s</code> e usa a porta <code class=\"language-text\">3000</code>, então precisaremos do servidor do rails inicializado para rodar o Browsersync.</p>\n<p>Após ter inicializado o server do Rails você precisa rodar outro comando no seu terminal (em outra aba ou em outra tela).</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ browser-sync start --proxy localhost:3000 --files <span class=\"token string\">\"app/assets/**/* , app/views/**/*.html.*, \\!tmp, \\!log\"</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Eu vou explicar um pouco qual é a do comando acima. 😁</p>\n<p>Basicamente eu estou inicializado o server do Browsersync, apontando para o proxy do Rails (que já está rodando na porta 3000), passando quais são os arquivos que eu quero que ele assista (no caso apenas os assets e as views do Rails) e por fim estou ignorando os arquivos temporários da aplicação.</p>\n<p>Se isso tudo der certo ele vai abrir o navegador automaticamente para você, vai demorar um pouco até que ele sincronize tudo com o Rails, mas depois vai de boas.</p>\n<p>Caso você não queira que o navegador abra automaticamente basta colocar <code class=\"language-text\">--no-open</code> no final do comando e sucesso.</p>\n<p>Os comandos do Browsersync são bem fáceis de entender e se você já esta acostumado com outros comandos no terminal será bem tranquilo. Para saber mais leia em <a href=\"https://www.browsersync.io/docs/command-line\">browsersync.io/docs/command-line/</a></p>\n<hr>\n<p>Espero ter ajudado, Abraço!</p>\n<p>😎</p>","excerpt":"Aplicações Rails são magníficas não é mesmo? Todas aquelas Gems \"mágicas\", que fazem de tudo e um pouco mais, são lindas de se ver. Mas e se eu quiser…","timeToRead":2,"frontmatter":{"category":["rails"],"date":"há 10 anos","datePublished":"2016-06-20T00:00:00.000Z","description":"Hoje vou explicar como integrar e usar o Browsersync.io dentro de uma aplicação Ruby on Rails","path":"/usando-browsersync-em-uma-aplicacao-ruby-on-rails","tags":["rails","npm"],"title":"Usando Browsersync em uma aplicação Ruby on Rails","image":{"publicURL":"/static/painel-browsersync-io-a7cb73a8007cc1d7a131ed13680ee44d.png","name":"painel-browsersync-io"}},"fields":{"readingTime":{"words":504}}}},"pageContext":{}}}