Tengo una etiqueta de script en mi archivo show.ejs y tengo la siguiente línea:
<script> const post = <%- JSON.stringify(post) %> </script>Recibo el error de 'Error esperado' en las etiquetas ejs de apertura y cierre. Me preguntaba por qué ocurre este error y si hay algo que estoy haciendo que no esté permitido.
Solo tengo el mismo problema con el código VS si usa VS, necesita agregar al final de settings.json en la configuración de html esta línea
"html.validate.scripts": false, encuentra html en la parte inferior derecha 
luego busque configurar lenguaje HTML
y agregue una línea al final del archivo json 
Hay 2 formas opcionales.
1)
Cambie los delimitadores globales de EJS.
const ejs = require("ejs"); ejs.delimiter = '/'; ejs.openDelimiter = '['; ejs.closeDelimiter = ']';Actualice su guión.
<script> const post= [/- JSON.stringify(post) /]; </script>2)
Agregue esta propiedad a settings.json en VSCode.
"html.validate.scripts": falseCambie los delimitadores globales de EJS.
const ejs = require("ejs"); ejs.delimiter = '?'; ejs.openDelimiter = '['; ejs.closeDelimiter = ']';Actualice su guión.
<script> const post= [?- JSON.stringify(post) ?]; </script>Nota: El formato automático funcionará correctamente de 2 maneras.
Nota: prefiero el primero porque puedo usar tanto el formato automático como la validación de scripts y no necesito ninguna extensión EJS.