Solución:
Creo que encontré mi respuesta. Estaba a punto de crear un ayudante HTML para leer el bundleconfig.json
para el entorno de desarrollo, pero parece que no soy el primero en pensar que fue una buena idea. Tenga en cuenta que la implementación de .NET Core está vinculada en la parte inferior de la página.
https://github.com/madskristensen/BundlerMinifier/wiki/Unbundling-scripts-for-debugging
Editar
Para la implementación de .NET Core, la referencia al bundleconfig.json
esperaba que estuviera en una carpeta / Configs, que puede ser o no el caso de su proyecto. Para mí, lo acabo de tener en la raíz del proyecto.
Editar
Entonces esto no funciona si los archivos fuente están fuera de la carpeta wwwroot. Tener archivos fuera de la carpeta wwwroot es completamente razonable, por lo que estoy investigando que el ayudante html apunte a una ruta que transmitirá los archivos en modo de depuración
Solución posible
Aquí está mi evolución de la solución:
https://gist.github.com/rupe120/512a9eb837383963f80fd9ef4984eb15
Actualizar
Modifiqué mi solución para usar {*filePath}
en la definición de ruta, por lo que ahora no es necesario codificar la ruta
Actualizar
Creo que esta es la última actualización importante que haré. Reemplacé la cadena de ruta base estática con el outputFileName
valores de la bundleconfig.json
. Así que ahora hay tantas rutas de depuración como archivos minificados y sin miedo a las colisiones de nombres. Además, puede ver qué archivos están incluidos en qué paquete cuando está depurando, lo que creo que es bastante bueno.
No llamaría a esto exactamente una mejor práctica, pero lo siguiente funciona para mí.
En el bundleconfig.json
Preparo un paquete para el desarrollo y otro para la producción. El paquete para el desarrollo es solo texto concatenado, que es fácil de leer y depurar. El paquete para la producción está reducido y, opcionalmente, puede incluir un mapa de origen.
{
"outputFileName": "wwwroot/script.bundle.js",
"inputFiles": [
"wwwroot/node_modules/popper.js/dist/umd/popper.js",
"wwwroot/node_modules/jquery/dist/jquery.js",
"wwwroot/node_modules/bootstrap/dist/js/bootstrap.js"
],
"minify": {
"enabled": false,
"renameLocals": false
}
},
{
"outputFileName": "wwwroot/script.min.js",
"inputFiles": [
"wwwroot/script.bundle.js"
],
"minify": {
"enabled": true,
"renameLocals": true
},
// Optionally generate .map file
"sourceMap": false
}
El punto es que el paquete de producción usa solo el paquete de desarrollo. De esa forma tengo que mantener una sola lista.
En la página, donde se necesita JS, agrego etiquetas para dos paquetes.
<environment include="Development">
<script src="https://foroayuda.es/script.bundle.js" type="text/javascript"></script>
</environment>
<environment exclude="Development">
<script src="script.min.js" type="text/javascript"></script>
</environment>