<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Estevão Urbano</title>
    <description>The latest articles on DEV Community by Estevão Urbano (@estevaourbano).</description>
    <link>https://dev.to/estevaourbano</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F625755%2F7b398897-3b0e-433d-97b8-06b6f974aec3.jpg</url>
      <title>DEV Community: Estevão Urbano</title>
      <link>https://dev.to/estevaourbano</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/estevaourbano"/>
    <language>en</language>
    <item>
      <title>Babel e Webpack explicado por um n00b.</title>
      <dc:creator>Estevão Urbano</dc:creator>
      <pubDate>Wed, 05 May 2021 04:59:49 +0000</pubDate>
      <link>https://dev.to/estevaourbano/babel-e-webpack-explicado-por-um-n00b-6f9</link>
      <guid>https://dev.to/estevaourbano/babel-e-webpack-explicado-por-um-n00b-6f9</guid>
      <description>&lt;p&gt;Acabei de terminar as aulas do &lt;a href="https://www.linkedin.com/in/diego-schell-fernandes/"&gt;Diego Schell Fernandes&lt;/a&gt; sobre &lt;a href="https://babeljs.io/"&gt;Babel&lt;/a&gt; e &lt;a href="https://webpack.js.org/"&gt;Webpack&lt;/a&gt; no Ignite da &lt;a href="https://rocketseat.com.br/"&gt;Rocketseat&lt;/a&gt; 🚀.&lt;/p&gt;

&lt;p&gt;E posso dizer que aprender JavaScript é difícil se você é novo na área como eu.&lt;br&gt;
A tecnologia avança de uma forma que as vezes é muito difícil entender o que a ferramenta se propõe a resolver e o porquê dela o fazer, e você pode se perguntar, mas pra que serve Babel? E o Webpack? Quando que eu vou usar isso?&lt;/p&gt;

&lt;p&gt;Então esse artigo nada mais é do que ambas tecnologias explicadas por um n00b.&lt;/p&gt;
&lt;h1&gt;
  
  
  Babel
&lt;/h1&gt;

&lt;p&gt;O Babel nada mais é do que um tradutor de código. &lt;br&gt;
Ele pega código sofisticado ES6 e transforma em código menos sofisticado ES5, isto é pega código JS que o navegador não entende e traduz para uma língua que o navegador entenda.&lt;/p&gt;

&lt;p&gt;Tá mas não entendi ainda.&lt;/p&gt;

&lt;p&gt;Vamos pensar no seguinte caso, imagine que você está escrevendo um código JS e escreve da seguinte maneira:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import date from ‘date’;

export default () =&amp;gt; date.format(‘YYYY Do MM’);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O navegador por si só não entende isso, e é justamente por isso que precisamos do Babel para transformar o código acima, em um código que o navegador entenda neste caso nisso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const data = require(‘data’);

function getDateString(){
    const moment = date();
    return moment.format(‘YYYY Do MM’);
}

export.default = getDateString;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tá entendi, mas isso funciona só com JavaScript puro?&lt;/p&gt;

&lt;p&gt;No caso não, o Babel faz bastante coisa posso colocar em particular dois plugins o &lt;a class="mentioned-user" href="https://dev.to/babel"&gt;@babel&lt;/a&gt;
/preset-react que faz a tradução de arquivos .jsx para .js e o &lt;a class="mentioned-user" href="https://dev.to/babel"&gt;@babel&lt;/a&gt;
/preset-typescript que faz a tradução de arquivos .tsx para .js&lt;/p&gt;

&lt;p&gt;Ahh agora entendi, mas ele funciona com outros tipos de arquivos? Como .png, .css, .scss etc?&lt;/p&gt;

&lt;h1&gt;
  
  
  Webpack
&lt;/h1&gt;

&lt;p&gt;Imagina assim, se o Babel é tradutor de Javascript, o Webpack funciona praticamente com tudo, por que o front-end em si é um ambiente complexo com por exemplo CSS, SASS, imagens, fontes etc., e de alguma forma é preciso que todos esses arquivos sejam utilizáveis no nosso site ou aplicação web de forma rápida.&lt;/p&gt;

&lt;p&gt;E é aí que entra o Webpack, pois ele pega tudo isso e faz um pacotinho só, que é usado de forma rápida pelo usuário que acessa o site.&lt;br&gt;
O nome desse arquivo é bundle.js e o nome dessa prática é minify ou uglify.&lt;/p&gt;

&lt;p&gt;Dessa forma, o Webpack pega todos aqueles módulos instalados e faz a mágica com todas as dependências e transforma tudo em código de uma só linha, que o navegador entende.&lt;/p&gt;

&lt;p&gt;O create-react-app por exemplo utiliza tanto o Babel quanto o Webpack por debaixo dos panos. &lt;/p&gt;

&lt;h1&gt;
  
  
  Concluindo essa parede de texto
&lt;/h1&gt;

&lt;p&gt;O Babel transforma código ES6 atual em código ES5 não tão atual, o que aumenta a gama de navegadores que não terão problemas ao acessar determinado website que o utiliza.&lt;/p&gt;

&lt;p&gt;E o Webpack pega todos os arquivos que você tem no seu projeto e faz o minify deles, de forma que o website seja mais rápido, pois o código faz download mais rápido no lado do client, que em retorno acessa de forma mais rápida os conteúdos disponíveis.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
