Lebab

Todos nós adoramos as vantagens que vêm com o ES6, muitas das quais o senhor pode ver em Seis recursos minúsculos, mas incríveis, do ES6 e Mais seis recursos minúsculos, porém incríveis, do ES6O senhor está se apressando para escrever código ES6, como suporte a classes nativas, funções de seta e outras melhorias na linguagem. Agora que os navegadores suportam a maioria dessas adições de sintaxe, muitos de nós estão se apressando para escrever código ES6 e, ao mesmo tempo, se encolhendo com a ideia de atualizar códigos mais antigos. Manutenção…. Não é uma dor de cabeça?! Entre Lebab: um projeto que transpila o JavaScript escrito na sintaxe tradicional do JavaScript para a brilhante sintaxe ES6!


Lebab, cuja tarefa é o oposto da Babelé um utilitário de linha de comando fácil de usar. Instale e use o comando como qualquer outro módulo:



$ npm install -g lebab


Com o Lebab instalado, o senhor pode começar a transformar seu JavaScript antigo na beleza do ES6. O senhor pode transformar um único arquivo ou um padrão inteiro de arquivos:



# single file
$ lebab main.js -o main-es6.js --transform arrow

# pattern: .js files in `src/js`
$ lebab --replace src/js/ --transform arrow 

# pattern: used for any type of matching
$ lebab --replace 'src/js/**/*.jsx' --transform arrow


O senhor deve especificar uma transformação a ser aplicada ao seu arquivo JavaScript legado:



# Use arrow functions instead of `function` keyword when possible
$ lebab main.js -o main-es6.js --transform arrow

# Use `let` and `const` instead of `var` when possible
$ lebab main-es6.js -o main-es6.js --transform let

# Use template strings instead of string concatenation
$ lebab main-es6.js -o main-es6.js --transform template


Aqui está um rápido antes e depois do JavaScript transformado pela Lebab:



/*
    BEFORE:
*/

// Let/const
var name="Bob", time="yesterday";
time="today";

// Template string
console.log('Hello ' + name + ', how are you ' + time + '?');

var bob = {
  // Object shorthand
  name: name,
  // Object method
  sayMyName: function () {
    console.log(this.name);
  }
};


/*
    AFTER:
*/
// Let/const
const name="Bob";

let time="yesterday";
time="today";

// Template string
console.log(`Hello ${name}, how are you ${time}?`);

const bob = {
  // Object shorthand
  name,
  // Object method
  sayMyName() {
    console.log(this.name);
  }
};


É frustrante que o senhor só possa realizar uma transformação por vez por meio da linha de comando, portanto, se quiser agilizar as coisas, poderá usar a API programática:



import lebab from 'lebab';
const {code, warnings} = lebab.transform('var f = function(){};', ['let', 'arrow']);
console.log(code); // -> "const f = () => {};"


Para obter uma lista de transformações, sua confiabilidade ou até mesmo para contribuir, consulte o site Página do Lebab no GitHub.


O Lebab é um projeto incrível que pode nos poupar de muita manutenção manual. O senhor deve confiar cegamente em tudo o que vem do Lebab? Provavelmente não. Até mesmo a mais simples das transformações do Lebab tornará nossa vida mais fácil? Sim!