Estou sugerindo alterar a dica de javascript para usar o ESLint para melhor suporte aos recursos do ES6+.
Eu gostaria de poder usar propriedades de classe e async/await mais, mas também existem muitas outras regras de linting que são muito melhores que jshint.
class Foo {
bar = 'baz';
}
async function foo () {
const bar = await baz();
}
Eu não analisei o quão difícil isso pode ser trocar o linter javascript, então não sei o quão realista é uma solicitação.
Esta é uma boa ideia e também necessária para o #3180.
Poderíamos baseá-lo nos arquivos de demonstração da Web do ESLint.
Por favor, trabalhe nessa questão.
A nova versão 2.10.0 do JSHint foi lançada com suporte para os novos recursos.
Como solução temporária - eu usei o ACE typescript, ele já tem await/async.
O texto datilografado não mostra um erro .. mas perde muitos outros erros.
não é apenas assíncrono/aguarda toda a sintaxe es6, incluindo novos operadores matemáticos como 8**2
A partir de hoje, esta edição tem 3 anos . O React já foi lançado há algum tempo, então certamente a demanda está aumentando para isso. O projeto ainda está bastante ativo, mas não há indicação de que isso esteja em nenhum roteiro oficial e parece que é um “sim, é isso que precisamos fazer, e provavelmente vamos fazê-lo”.
Podemos _por favor_ obter algum tipo de atualização aqui? @asa noturna ? @adamjimenez ?
Eu encontrei isso enquanto tentava encontrar o linter para arquivos CSS e improvisar algo meu, _/mode/javascript_worker.js_ 🔗
Esta configuração parece sugerir que ele já está configurado para suporte ESNext , pelo menos ao trabalhar no modo de trabalho Javascript para o trabalho javascript. Pessoalmente, isso não lançou nenhuma luz, mas talvez isso possa ajudar um de vocês
Tentei reconstruir o ace depois de substituir o arquivo jshint.js pelo mais recente. Isso evita que um erro seja mostrado para async/await. No entanto, também interrompe a exibição de erros para outros cenários (colchetes ausentes, strings não fechadas, etc.). Muito frustrante, suponho que o projeto Ace está morto.
Eu também tenho mexido com isso e consegui fazer funcionar. A documentação pode ser atualizada, foi bastante doloroso descobrir como todo o ecossistema funciona (levou várias horas) e depois aprendi que todas as mudanças eram necessárias em uma linha ... :/
Há um par de opções:
1) se você acabou de importar a versão compactada/minificada - precisa substituir: "esnext:!0" por "esversion:9"
https://raw.githubusercontent.com/ajaxorg/ace-builds/master/src-min/worker-javascript.js
2) você pode conferir o repositório e construir você mesmo. (Demora cerca de 1 minuto, então isso também é bastante fácil)
git clone [email protected]:ajaxorg/ace.git
npm install
nano +82 lib/ace/mode/javascript_worker.js // replace "esnext: true," with "esversion: 9"
node Makefile.dryice.js full --target ../ace-builds
UPDATE : Desde que meu último comentário encontrou outra maneira:
var editor = ace.edit("editor");
editor.session.on('changeMode', function(e, session){
if ("ace/mode/javascript" === session.getMode().$id) {
if (!!session.$worker) {
session.$worker.send("setOptions", [{
"esversion": 9,
"esnext": false,
}]);
}
}
});
editor.session.setMode("ace/mode/javascript");
Impressionante!! Alguma indicação se você poderia especificar outras versões, como 6 para ES6 e assim por diante?
Também adicionarei, caso outros sejam novos no git ou não tenham configurado seu SSH com o Github, você também pode cloná-lo com: git clone https://github.com/ajaxorg/ace.git/
. _Tropei nisso mais vezes do que gostaria de admitir_
Comentários muito úteis
Por favor, trabalhe nessa questão.