Estoy tratando de hacer un módulo ES6 con EJS. ¡Lo logré! Sin embargo, la fuente tiene esto:
if (typeof window != 'undefined') { window.ejs = exports; }Esto significa que el módulo resultante TAMBIÉN tiene eso. A menos que se ejecute una expresión regular en el archivo de origen, ¿hay alguna forma clara de evitar que el módulo contamine la ventana?
Hice una réplica de reproducción para ello: https://replit.com/@mercmobily/prevent-namespace-pollution#ejs-es.js La fuente es node_modules/ejs/lib/ejs.js que termina con:
/* istanbul ignore if */ if (typeof window != 'undefined') { window.ejs = exports; }Y obviamente también lo hace el módulo ES6 resultante. Estoy en conversaciones con el autor de EJS que está feliz de hacer cambios menores, pero no drásticos.