Vad är Babel ?

Babel är en JavaScript-kompilator

Babel är en verktygskedja som huvudsakligen används för att konvertera ECMAScript 2015+ – kod till en bakåtkompatibel version av JavaScript i nuvarande och äldre webbläsare eller miljöer. Här är de viktigaste sakerna Babel kan göra för dig:

  • transformera syntax
  • Polyfill-funktioner som saknas i din målmiljö (genom @babel/polyfill)
  • Källkodstransformationer (codemods)
  • och mer! (kolla in dessa videor för inspiration)
// Babel Input: ES2015 arrow function.map((n) => n + 1);// Babel Output: ES5 equivalent.map(function(n) { return n + 1;});

för en fantastisk handledning om kompilatorer, kolla in-super-tiny-kompilatorn, som också förklarar hur Babel själv Fungerar på en hög nivå.

ES2015 och bortom

Babel har stöd för den senaste versionen av JavaScript genom syntaxtransformatorer.

dessa plugins låter dig använda ny syntax, just nu utan att vänta på webbläsarstöd. Kolla in vår användarguide för att komma igång.

JSX och React

Babel kan konvertera JSX syntax! Kolla in vår React preset för att komma igång. Använd det tillsammans med Babel-sublime-paketet för att få syntaxmarkering till en helt ny nivå.

Du kan installera den här förinställningen med

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

och lägga till@babel/preset-react I din Babel-konfiguration.

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>; }});

Läs mer om JSX

Typanteckningar (flöde och TypeScript)

Babel kan ta bort typanteckningar! Kolla in antingen vår Flow preset eller TypeScript preset för att komma igång. Tänk på att Babel inte gör typkontroll; du måste fortfarande installera och använda Flow eller TypeScript för att kontrollera typer.

Du kan installera flödesinställningen med

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

eller TypeScript-förinställningen med

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

Läs mer om flöde och TypeScript

pluggable

Babel är byggd av plugins. Komponera din egen transformationsrörledning med befintliga plugins eller skriv din egen. Använd enkelt en uppsättning plugins genom att använda eller skapa en förinställning. Läs mer

skapa en plugin i farten med astexplorer.net eller använd generator-babel-plugin för att skapa en plugin-Mall.

// 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

Källkartstöd så att du enkelt kan felsöka din kompilerade kod.

Spec-kompatibel

Babel försöker hålla sig trogen ECMAScript-standarden, så mycket som rimligen möjligt. Det kan också ha specifika alternativ för att vara mer spec-kompatibel som en avvägning till prestanda.

Compact

Babel försöker använda minsta möjliga mängd kod utan beroende av en skrymmande körtid.

detta kan vara svårt att göra i fall, och det finns ”lösa” alternativ för specifika transformationer som kan avvägas spec compliancy för läsbarhet, filstorlek och hastighet.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *