Improve transpilation error handling for missing closing tags
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- babel, javascript
- Área
- build-system
Línea de trabajo
Ejecuta el script de shell proporcionado para reproducir el comportamiento, comenzando con la configuración del plugin de Babel en .babelrc y la entrada de index.js. Compara la salida generada con el fallo esperado: la transpilación debería rechazar la etiqueta de cierre que falta en lugar de eliminar silenciosamente el elemento h1.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Consider this sample code, which accidentally omits a closing tag.
import htm from 'htm'
const h = (type, props, ...children) => ({type, props, children});
const html = htm.bind(h)
console.log(JSON.stringify(html`<h1>Hello, world!`));
In this case, the user intended to include a closing tag </h1>, and so the user's desired logged result is {"type":"h1","props":null,"children":["Hello, world!"]}
Transpile htm away using this script.
shell script
#!/bin/sh -ex
rm -rf babel-htm-errors
mkdir babel-htm-errors
cd babel-htm-errors
npm init -y
npm i -D @babel/cli @babel/core babel-plugin-htm
cat <<EOF > .babelrc
{
"plugins": [
["htm", {
"pragma": "h"
}]
]
}
EOF
cat <<EOF > index.js
import htm from 'htm'
const h = (type, props, ...children) => ({type, props, children});
const html = htm.bind(h)
console.log(JSON.stringify(html\`<h1>Hello, world!\`));
EOF
npx babel index.js > output.mjs
node output.mjs
Expected: Transpilation should fail with an error.
Actual: The html line transpiles to:
console.log(JSON.stringify("Hello, world!"));
The <h1> tag is silently dropped.
(Note that this error behavior is different from the runtime behavior of htm with mismatching closing tags; see issue #166.)
- Lenguaje dominante
- JavaScript
- Estrellas
- 9k
- Forks
- 181
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de developit/htm
-
Sarthak Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
-
Tugas Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
-
Tugas Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
-
type checking templates Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
Todos los issues de developit/htm
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Improve Title Support Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·