Language-tools: mostra erros

Criado em 18 jun. 2020  ·  3Comentários  ·  Fonte: sveltejs/language-tools

Descreva o bug

<!doctype html> mostra erros. Parece relacionado a https://github.com/sveltejs/language-tools/issues/143.

Reproduzir

CleanShot 2020-06-18 at 09 50 11@2x
CleanShot 2020-06-18 at 09 54 13@2x

<!doctype html />
<html lang="en">
  <slot name="head" />
  <body>
    <slot name="view" />
    <slot name="script" />
  </body>
</html>

Remover o doctype corrige o problema. Eu também tentei <!doctype html> , mas a formatação automática insere <!doctype html /> qualquer maneira.

Comportamento esperado

Sem erros. Parece que está corrigido no svelte: https://github.com/sveltejs/svelte/issues/336

Não consegui reproduzi-lo no Svelte REPL (recebi um erro diferente), mas acho que deve funcionar com SSR.

Sistema (preencha as seguintes informações):

  • OS: OSX
  • IDE: VSCode
  • Plugin / pacote: Svelte Beta v99.0.46
bug good first issue

Comentários muito úteis

@dummdidumm Com base na sua sugestão, criei uma solicitação pull # 213.

Todos 3 comentários

É um problema de svelte2tsx . A saída de determinada entrada é:

<></>;function render() {
<><!doctype html />
<html lang="en">
  <slot name="head" />
  <body>
    <slot name="view" />
    <slot name="script" />
  </body>
</html></>
return { props: {}, slots: {head: {}, view: {}, script: {}} }}

export default class {
    $$prop_def = __sveltets_partial(render().props)
    $$slot_def = render().slots
}

<!doctype html /> não é uma tag jsx válida, portanto, gera esses erros de sintaxe. Acho que a melhor solução seria verificar dentro de svelte2tsx se tal string existe no início do documento e apenas removê-la durante a conversão para jsx, usando um regex que verifica "há uma tag que começa com ele começo".

@dummdidumm Com base na sua sugestão, criei uma solicitação pull # 213.

Obrigado @skippednote ! A correção estará disponível em cerca de 20 horas.

Esta página foi útil?
0 / 5 - 0 avaliações