Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

PROXY E ES6 MODULES

Flavio, boa noite. Parabéns pelo curso!

Venho usando ES6 em alguns projetos com o webpack + babel. Não é possível implementar Proxy em ES5 e por isso o Babel não o disponibiliza. Por outro lado, nenhum browser implementa ainda o gerenciamento de módulos que havia sido definido para ES6 e depois foi retirado. Certo? Como consigo montar um ambiente onde possa trabalhar com Proxy e com modules "ES6"?

Obrigado

Abs

3 respostas

OI Paulo.

ES6 modules não foi removido. O que não foi definido é como os módulos devem ser carregados. Vc pode usar System.js, um carregador de módulos universal com Babel, aliás ele é usado pelo TypeScript.

Sobre o proxy vc pode usar um polyfill. Seguem dois para você experimentar:

https://github.com/GoogleChrome/proxy-polyfill

https://github.com/tvcutsem/harmony-reflect

Mas não esqueça que a plataforma Node suporta Proxy e quase tudo do es6. Então esse curso também é de grande valia para quem usa Node.js.

Sucesso e bom estudo!

Flavio, bom dia. Obrigado pela orientação. Vou estudar essas alternativas para tentar montar um ambiente e aplicar um pouco do que (acho que) aprendi no curso. A idéia é usar o Proxy para tentar montar algo parecido com o Flux do React ou o Vuex do Vue. (fica a sugestão para o terceiro módulo do curso... ;-) )

Considerando que num browser moderno já temos muita coisa de ES6 implantada, seria possível montar esse ambiente apenas com o browser e o System.js, sem o Babel e polyfills?

Abs

solução!

Olá Paulo. a resposta é "depende".

Depende, porque toda site ou aplicação deve conhecer quem é seu publico e determinar qual faixa e versões de navegadores deve suportar. Por exemplo, quando a Caelum decidiu não mais suportar o IE 8 ou IE9 foi porque a parcela de usuários com esses navegadores em seu site era ínfima. Contudo, pode ser que dependendo do seu público e negócio isso seja um cenário diferente e você tenha que suportá-los.

Apesar do suporte do ES6 estar quase completo nos navegadores atuais (Safari terá uma mega atualização), o problema do sistema de módulos não será resolvido tão cedo e o auxílio de um loader será necessário. Aliás, como você mesmo constatou, nem mesmo o Babel é capaz emular Proxy, sendo necessário um Polyfill. Além disso, ainda há browsers mobiles caducos espalhados pela internet.

Por fim, a maneira mais garantida e a future proof de trabalhar com os recursos mais atuais do ES6 é usar um transpiler. Alguns transpilers necessitam de algum polyfill para funcionares corretamente, vai depender de qual você escolheu.

Este curso de ES6 foi um dos mais pedidos pelos alunos do Alura. Se o conhecimento aprendido aqui será aplicado diretamente ou com transpiler, no browser ou no Node.js isso quem decidirá é o aluno. Independente do cenário, ele precisa saber ES6 (aliás, tem até concurso público que já pede isso em prova!).

Boa aula Paulo!