2017-07-17 4 views
0

Jedes Mal, wenn wir eine neue Version unserer Software veröffentlichen, die mit Browserify gebündelt ist, müssen wir unsere Benutzer bitten, ihren Cache mit den normalen Methoden STRG + F5 zu löschen oder in die Browsereinstellungen einzutauchen. Es ist nicht ideal, wenn es etwa tausend Benutzer gibt. Wir versuchen einen Weg zu finden, wie wir das vielleicht umgehen können. Ich bin offen für alle möglichen Optionen.Browserify bundles

Unser Projekt basiert auf ReactJS, läuft also im Browser und verbindet sich über eine RESTful-API mit Backend-Diensten. Wir verfolgen, welche Version geladen ist und dies ist von der Konsole aus sichtbar. Unter Verwendung der Versionsnummer können wir auf zwei verschiedenen Maschinen vergleichen, dass ein Benutzer die neueste Version ausführt, während dies bei anderen möglicherweise nicht der Fall ist.

Der Code ist in zwei separate Dateien gebündelt und ich denke, dass wir hier suchen sollten.

+0

Ändern der Dateiname jedes Mal sein, wie eine Versionsnummer hinzuzufügen. – Scimonster

Antwort

1

Sie müssen den Dateinamen bei jeder neuen Version ändern. Ein Hash der Datei ist eine geeignete Sache, die Sie hinzufügen könnten.

Überprüfen Sie md5ify, um dies zu Ihrem Projekt Build hinzuzufügen.

Wenn Sie dies selbst implementieren, stellen Sie sicher, dass Sie auch den korrekten Dateinamen in Ihre index.html Datei laden.

Edit:

So laden automatisch die richtige Datei, die Sie einen Platzhalter in der Haupt html haben müssen.

Dann benötigen Sie eine manifest.json Datei, die wie folgt aussieht:

{ 
"main.js": "main.[HASH].js" 
} 

nach der Bündelung automatisch erstellt Dies muss. Jetzt können Sie den Platzhalter durch eine Suche in der manifest Datei mit dem richtigen Asset ersetzen.

Sie müssen entweder Ihre eigenen Skripte dafür schreiben oder etwas wie gulp zusammen mit browserify verwenden.

würde andere Lösung webpack

+0

Das ist hilfreich, aber ich brauche den Bundler, um den generierten Dateinamen in die index.html für mich einfügen zu können. Es ist keine Aufgabe, die wir wirklich jedes Mal manuell ausführen möchten. –

+0

aktualisierte die Antwort. Da ich Ihr genaues Setup nicht kenne, können Sie es als Richtlinie verwenden. –