javascript - Bundlul ASP.NET nu funcționează când este implementat (debug="false")


În dezvoltare, împachetarea funcționează așa cum este de așteptat cu fișiere necombinat și necomprimat, dar după implementarea unui site cu web.config setat pentru a activa pachetele

<compilation debug="false" targetFramework="4.5" />

rezultatul obținerii unei cereri către un pachet poate include un comentariu în partea de sus similar cu următorul

/* Minification failed. Returning unminified contents.
.. errors like JS1002 or JSxxxx errors

În alte cazuri nu sunt generate erori din cauza minificării, dar unele scripturi JavaScript nu rulează sau apar erori în timpul execuției.

Ce sintaxă din JavaScript care funcționează altfel ar putea cauza acest comportament după împachetare?

Răspuns #1

O situație care poate cauza acest lucru este un comentariu pe o singură linie/ca ultima linie a unui fișier javascript. Acest lucru va face ca fișierul următor adăugat să aibă cel puțin prima linie, de asemenea, comentată

dacă, de exemplu, ai un pachet

bundles.Add(New ScriptBundle("~/bundles/test").Include(
            "~/Scripts/adder.js",
            "~/Scripts/printer.js"))

adder.js

function adder(a, b) {
    return a + b;
}
//this is the adder.js

printer.js

printer = true;

if (printer) {
    alert("It works");
    document.getElementById("itWorked").textContent = "It worked";    
}