Ich verwende Grunt, der mit grunt-contrib-uglify
task verbunden ist, um JavaScript in meiner App zu minimieren.
Bei der Verkleinerung wird jede 'use strict'
-Anweisung entfernt, mit Ausnahme der allerersten. Daher erhalte ich eine riesige JavaScript-Datei mit der Anweisung 'use strict' oben.
Das Problem ist, dass die globale 'use strict'
-Direktive den Browser veranlasst, den Code jeder Lib, die ich im Projekt verwende, im "strikten Modus" auszuführen und Fehler verursacht, da nicht jeder 3rd-Party-Code für strict geschrieben wird Modus.
Irgendwelche Ideen, wie Sie das lösen können?
Wenn Sie alle Ihre Skripts mit einem IIFE umschließen, wird grunt-contrib-uglify
wird diese Aussage nicht bis zum Anschlag positionieren, sondern sie in jedem IIFE, in dem Sie schreiben, belassen.
Ja, es ist mehr Code, aber wenn Sie die Datei entpacken, sollte das kein Problem sein. Dadurch bleiben alle Variablen, die Sie definieren, außerhalb des globalen Gültigkeitsbereichs, was zu performanterem Code führt.
Tags und Links javascript gruntjs bundling-and-minification uglifyjs