Eu não entendi porque o uglify não funciona com ES6+. O babel não serve justamente para transpilar o código para ser compatível com ES5? Sendo assim o uglify não deveria ter problemas em rodar.
Eu não entendi porque o uglify não funciona com ES6+. O babel não serve justamente para transpilar o código para ser compatível com ES5? Sendo assim o uglify não deveria ter problemas em rodar.
Fala aí Alexandre, você está tendo erro no Uglify? Poderia postar o erro completo? Ficaria mais fácil entender o problema e tentar ajudar.
Oi Matheus. Na verdade não estou tendo esse erro agora.
O que me referia era que o professor demonstrou em aula que o uglify não funciona com ES6+ pois não reconhece a sintaxe.
Mas no projeto do curso, o babel também está sendo utilizado. O babel serve justamete para transpilar código ES6+ para ES5.
Portanto, o uglify não deveria ter problemas em rodar depois que o código é transpilado para ES5. Mas mesmo assim não funciona.
Queria entender porque isso acontece
Oi Alexandre, O uglify nao funciona com ES6 mesmo, como você pode olhar na documentação
https://github.com/mishoo/UglifyJS2#readme
O que ocorre é que o Babel converte de ES6 para ES5 e o UglifyJS minifica o JS gerado. Ele que vai trocar o nome dos métodos e variáveis para algo que somente o webpack vai entender.
Então Alexandre, a função do Babel é justamente transpilar um código novo, para um código antigo, dessa maneira conseguimos garantir uma maior compatibilidade.
Se você tentar aplicar o Uglify diretamente no código de desenvolvimento, no caso ES6+, ele não irá funcionar, pois não conhece as sintaxes do mesmo.
Para isso, você pode aplicar uma transpilação do Babel e pedir para o Uglify rodar em cima desse código transpilado, dessa maneira, será um código que ele entende (na maioria das vezes).
Pode ser que um código ou outro ele também chegue a não entender, mas, na maioria das vezes ele conseguirá fazer um check do mesmo.
Espero ter ajudado.