Tengo una aplicación .NET MVC, para la cual uso la extensión WebCompiler (versión 2022 de la) para Visual Studio 2022, para minimizar mis archivos CSS y JS.
Cuando las secuencias de comandos JS se minimizan, parece que la extensión está agregando algunos fragmentos de código no deseados a la secuencia de comandos resultante. Cosas como :
function _toConsumableArray(n){if(Array.isArray(n)){for(...O incluso :
return regeneratorRuntime.async(function(o){for...Supongo que hace esto porque, por alguna razón aleatoria, parece creer que estoy usando algún tipo de tecnología JS que no sea JavaScript web clásico simple, como Node JS, Babel o lo que sea.
Y esto está causando problemas en el lado del cliente de manera obvia, con errores como regeneratorRuntime que no se definen.
¿Hay alguna manera de evitar que la extensión haga eso? ¿Hay palabras clave reservadas que se pueden usar con otras tecnologías JS que harían que la extensión crea que está usando esa tecnología y que debo evitar usar en mis scripts? ¿Hay alguna otra extensión minificadora de JS viable que funcione con VS 2022? Parece que WebCompiler está descontinuado.
Busqué en el archivo compilerconfig.json.defaults , pero no parece contener ninguna opción con respecto a esto, ni compilerconfig.json .
Así que descubrí qué estaba causando que apareciera el elemento regeneratorRuntime , fue el uso de las palabras clave async / await .
Eliminé el async de mi declaración de función y usé then() en lugar de await , y el regeneratorRuntime desapareció.
El asunto _toConsumableArray todavía está ahí, probablemente causado por otra cosa, pero este no está causando ningún error del lado del cliente, por lo que puedo vivir con eso.