O Que é Babel?

Babel é um compilador JavaScript

Babel é uma ferramenta usada principalmente para converter ECMAScript 2015+ código em uma versão reversa Compatível de JavaScript em navegadores ou ambientes atuais e antigos. Aqui estão as principais coisas Babel pode fazer por você:

  • Transformar sintaxe
  • suporte retroativo recursos que estão faltando no seu ambiente de destino (através do @babel/suporte retroativo)
  • código-Fonte transformações (codemods)
  • E muito mais! (confira estes vídeos para inspiração)
// Babel Input: ES2015 arrow function.map((n) => n + 1);// Babel Output: ES5 equivalent.map(function(n) { return n + 1;});

Para um incrível tutorial sobre compiladores, confira o super-pequeno-compilador, que também explica como Babel em si funciona em um nível elevado.

ES2015 and beyond

Babel has support for the latest version of JavaScript through syntax transformers.

estes ‘plugins’ permitem-lhe usar uma nova sintaxe, neste momento, sem esperar pelo suporte do navegador. Confira nosso guia de uso para começar.

JSX and React

Babel can convert JSX syntax! Veja a nossa predefinição para começar. Use-o em conjunto com o pacote babel-sublime para trazer realce de sintaxe para um nível completamente novo.

Você pode instalar esta predefinição com

npm install --save-dev @babel/preset-react

e adicionar @babel/preset-react para sua Babel de configuração.

export default React.createClass({ getInitialState() { return { num: this.getRandomNumber() }; }, getRandomNumber() { return Math.ceil(Math.random() * 6); }, render() { return <div> Your dice roll: {this.state.num} </div>; }});

Saiba mais sobre o JSX

as Anotações de Tipo (Fluxo e Transcrito)

Babel pode tira para fora o tipo de anotações! Confira o nosso Ajuste de fluxo ou o ajuste de Digitação para começar. Tenha em mente que Babel não faz verificação de tipo; você ainda terá que instalar e usar fluxo ou TypeScript para verificar os tipos.

Você pode instalar o fluxo de preset com

npm install --save-dev @babel/preset-flow
// @flowfunction square(n: number): number { return n * n;}

ou o typescript preset com

npm install --save-dev @babel/preset-typescript
function Greeter(greeting: string) { this.greeting = greeting;}

Saiba mais sobre o Fluxo e o TypeScript

Pluggable

Babel é construído a partir de plugins. Componha o seu próprio gasoduto de transformação usando plugins existentes ou escreva o seu próprio. Usar facilmente um conjunto de plugins usando ou criando uma predefinição. Saiba mais →

crie um plugin com astexplorer.net ou usar o ‘plugin’ gerador-babel para gerar um modelo de ‘plugin’.

// A plugin is just a functionexport default function ({types: t}) { return { visitor: { Identifier(path) { let name = path.node.name; // reverse the name: JavaScript -> tpircSavaJ path.node.name = name.split('').reverse().join(''); } } };}

Debuggable

Suporte do mapa de origem para que possa depurar o seu código compilado com facilidade.

Spec Compliant

Babel tenta manter-se fiel ao padrão ECMAScript, tanto quanto razoavelmente possível. Ele também pode ter opções específicas para ser mais compatível com spec como um tradeoff para o desempenho.

compacto

Babel tenta usar a menor quantidade de código possível, sem dependência de um tempo de execução volumoso.

isto pode ser difícil de fazer em casos, e existem opções “frouxas” para as transformações específicas que podem negociar a compliância de spec para legibilidade, Tamanho de arquivo e velocidade.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *