browserify: verkettete browserifizierte Dateien = Fehler _prelude.js vs. Laden einzelner Dateien funktioniert

8

Bei der Verkettung zweier Browserdateien (vendor.js und app.js in combined.js) tritt ein Problem auf.

Beim Laden von combined.js im Browser wird in _prelude.js Folgendes ausgelöst:

%Vor%

beim Laden der einzelnen Dateien funktioniert problemlos.

Was vermisse ich?
(lassen Sie mich wissen, wenn Sie mehr Konfiguration benötigen, glücklich zu bieten)

Danke für Ihre Hilfe!

In Gruntfile.js:

%Vor%     
user3263587 02.02.2014, 19:06
quelle

2 Antworten

2

Ich habe eine erste Untersuchung durchgeführt und es scheint ein eindeutiges Problem mit der Präambel zu geben. Ich habe ein Problem mit den Betreuern von grunt-browserify angesprochen, also sehen wir, was dabei herauskommt.

Für jetzt bin ich eine Datei zwischen vendor.js und app.js verketten als eine Möglichkeit, die Präambel wie folgt zu beheben:

Gruntfile.js

%Vor%

fix_browserify

%Vor%

Beachten Sie, dass in der obigen Datei kein Wagenrücklauf oder Zeilenvorschub vorhanden ist

Ich bin mir nicht sicher, ob unbeabsichtigte Konsequenzen bei der Definition von require auftreten werden, aber es scheint in meiner begrenzten Verwendung zu funktionieren. Wenn Sie mehr als nur ein App-Bundle haben, müssen Sie die Verkettung der Datei fix_browserify vor jedem der Bundles ebenfalls verschachteln.

Wenn mir irgendwelche besseren Lösungen bekannt werden, werde ich diese Antwort aktualisieren.

AKTUALISIEREN

Ich habe grunt / browserify vergessen, nachdem ich gesehen habe, wie Browerify funktionierte, und ging einfach mit Brunch, was viel einfacher einzurichten war und auch viel schneller wieder aufgebaut werden kann, wenn sich die Dinge ändern. Obwohl es kein grunt Ersatz ist, baut es alles auf, was ich brauche.

    
Andrew Hacking 24.02.2014, 02:59
quelle
2

Schnelle Lösung

Wir haben diesen Fehler behoben, indem wir sichergestellt haben, dass das JS-Paket in jeder Datei mit einem Semikolon endet, wie zum Beispiel Keven Wang erwähnt , bevor sie verkettet werden.

Weitere Informationen

Es scheint, als ob beim Schreiben, Browserify das Semikolon weglässt (möglicherweise wegen dieses Problems ) ) wenn Sie die Erstellung von Quellkarten aktiviert haben (gesteuert durch die Option debug ). Wenn wir diese Option nicht bereitstellen, fügt Browserify das Semikolon hinzu, und nach der Verkettung treten keine Fehler auf.

Es scheint Probleme zu geben, die durch das Standardverhalten verursacht werden, das das Semikolon weglässt oder anhängt (siehe dies) Problem - Manchmal möchten Sie die Ausgabe in einen Ausdruck umbrechen, also nicht das Semikolon. Es hängt auch stark von Ihrer Build-Pipeline ab, da wir keine Fehler in einem anderen Projekt mit einem etwas anderen Build-Prozess hatten, bei dem die Ausgabe über Grunt% uglify ausgeführt wurde, die Quellkarten entfernt wurden und das Semikolon am Ende hinzugefügt wurde.

Ich denke, Andrew's Lösung, eine Spacer-Datei hinzuzufügen, ist unnötig hacky, und es gibt bessere Lösungen, um sicherzustellen, dass die Ausgabe wie erwartet ist (d. h. mit Semikolons am Ende), bevor die Bündel zusammengefügt werden.

    
Steve Harrison 19.03.2016 06:17
quelle

Tags und Links