Wie kann ich neue Änderungen anwenden, wenn ich die JS-Datei in der Produktion bearbeite?

Ich habe einige Änderungen in JS-Dateien innerhalb eines Docker-Containers auf meinem laufenden VPS vorgenommen. Wie kann ich die neuen Änderungen anwenden? Ich habe versucht, sv restart unicorn auszuführen, aber das hat nicht funktioniert.

P.S.: Wenn ich auf meinem lokalen Computer bearbeite, werden die Änderungen beim Neuladen der Seite sofort übernommen.

Als Theme-Komponente bereitstellen

Ich habe diese Dateien geändert. Ist es möglich, sie als Theme zu verwenden? Könntest du mir dazu weitere Details geben?

Danke.

Gibt es also keine Möglichkeit, JS neu zu bauen und die Änderungen sofort zu sehen, wie in der lokalen Umgebung?

Wenn du verwaltete und persistente Änderungen am Kerncode möchtest, die über einen Neuaufbau hinaus bestehen bleiben, hast du vier Möglichkeiten:

  • (einen) Fork pflegen (vergiss es, ein furchtbarer Wartungsaufwand) – das würdest du nur tun, wenn du die nächsten drei Optionen nicht kennst oder zu faul bist, sie zu lernen :sleeping_face:
  • Plugin (Ruby & Rails, CSS, JavaScript, Vorlagen & Assets) – Frontend und Backend.
  • Theme-Komponente (JavaScript, CSS, Vorlagen und Assets) – nur Frontend.
  • PR zum Kerncode! :wink:

Für dich scheint die Theme-Komponente der richtige Ansatz zu sein. Investiere die Zeit, um zu lernen, wie man sie verwendet, und du wirst belohnt.

Auf den ersten Blick mag es wie zusätzlicher Aufwand wirken, aber sie sind super praktisch. Du kannst Theme-Komponenten online aktualisieren, aktivieren und deaktivieren, ohne neu aufbauen zu müssen. Sehr praktisch! Derzeit ist die einzige große Einschränkung, dass sie meines Wissens nach noch keine Testunterstützung bieten.

Nach vier stunden langem kämpfen habe ich plötzlich Docker neu gestartet und es funktioniert!

Danke für deine Unterstützung, Robert! :smiling_face_with_three_hearts:

Ja, aber die Änderungen gehen verloren, wenn du neu erstellst.

Du wirst es bereuen, wenn du Roberts Rat nicht befolgst und keine Theme-Komponente erstellst.