No ecossistema JavaScript existe uma ferramenta que atua como um compilador, permitindo utilizar funcionalidades recentes da linguagem (ex: async/await, classes, arrow functions e JSX), convertendo código ECMAScript 2015+ em uma versão compatível com navegadores mais antigos. Tal ferramenta é denominada
- A)Express.js.
Express.js é um framework para aplicações web em Node.js, não uma ferramenta de compilação ou transpiração de código.
- B)npm.
npm é o gerenciador de pacotes do ecossistema JavaScript, usado para instalar e administrar dependências.
- C)Gulp.
Gulp é uma ferramenta de automação de tarefas de build, mas não é o transpiler responsável por converter sintaxe moderna de JavaScript.
- D)webpack.
webpack é um bundler, usado para empacotar módulos e assets, e não para converter a linguagem em si para versões antigas.
- E)Babel.
Babel é o transpiler/compilador que converte JavaScript moderno e JSX para uma versão compatível com ambientes mais antigos.
Gabarito: E
Quando você trabalha com JavaScript moderno, nem sempre o navegador ou ambiente de execução já entende tudo o que a linguagem oferece de mais recente. Aí entra uma ferramenta que faz a “ponte” entre o código atual e versões mais antigas da linguagem, traduzindo recursos como async/await, classes, arrow functions e até JSX para algo compatível com mais navegadores. Essa ferramenta é o Babel. Na prática, ele atua como um compilador/transpilador: recebe código em ECMAScript 2015+ e reescreve para uma versão anterior, sem mudar a lógica do programa. Por isso ele é muito usado em projetos web modernos, especialmente quando existe necessidade de suporte a ambientes antigos. É comum confundir Babel com ferramentas do ecossistema JavaScript que têm outras funções. Algumas organizam dependências, outras fazem empacotamento de arquivos, e outras automatizam tarefas de build. Mas nenhuma delas tem como papel principal a tradução de sintaxe moderna para sintaxe mais antiga. Então, o gabarito é a letra E, porque Babel é exatamente a ferramenta usada para transpilar JavaScript moderno e JSX para versões compatíveis com navegadores mais antigos.