Ab heute verwenden alle neuen selbst gehosteten Discourse-Installationen standardmäßig unsere Ember CLI-Builds im Produktivbetrieb.
Wir setzen diese Builds bereits seit geraumer Zeit selbst im Produktivbetrieb ein; sie sollten stabil sein und mit allen wichtigen Plugins funktionieren. Falls Sie auf Probleme stoßen und diese Funktion deaktivieren möchten, bearbeiten Sie Ihre app.yml-Datei und entfernen Sie EMBER_CLI_PROD_ASSETS: 1.
Ansonsten melden Sie uns bitte etwaige Fehler – wir werden diese umgehend beheben.
In naher Zukunft werden alle Discourse-Installationen die Ember CLI-Builds verwenden.
Ja, @Simon_Manning hat recht – du kannst es bei Bedarf manuell selbst aktivieren oder warten, bis es zum Standard wird. Wir führen es schrittweise ein, um alle Fehler im Voraus zu finden.
Browserslist: caniuse-lite ist veraltet. Bitte führen Sie Folgendes aus:
npx browserslist@latest --update-db
Warum Sie dies regelmäßig tun sollten:
https://github.com/browserslist/browserslist#browsers-data-updating
Ich bin super aufgeregt wegen dieser Änderung, und es ist eine großartige Sache für die Zukunft von Discourse.
Ich würde einfach Folgendes empfehlen: Wenn du Drittanbieter-Themenkomponenten oder Plugins betreibst, starte bitte eine separate Testinstanz mit demselben Set und teste alles dort, bevor du auf deinem Hauptsite auf Ember CLI umstellst.
Ich habe gerade erhebliche Änderungen an einer meiner Themenkomponenten veröffentlicht, ohne die die Host-Site kaputtgegangen wäre.
Die kurze Version lautet: Dies ist der offiziell unterstützte Weg, um Ember-Anwendungen zu entwickeln, und sollte es sowohl für Beitragsleistende als auch für uns erleichtern, Ember in Zukunft zu aktualisieren.
Stimmt es, dass die einzigen Theme-Komponenten, die durch diese Änderung wahrscheinlich beschädigt werden, diejenigen sind, die Wyeth-JavaScript enthalten?
Gibt es eine einfache Möglichkeit, eine Abfrage durchzuführen, um die Theme-Komponenten zu finden, die JavaScript enthalten? Entweder über den Data Explorer oder eine Rails-Abfrage? Ich möchte eine Möglichkeit haben, festzustellen, welche Seiten wahrscheinlich betroffen sein werden, und ihnen anbieten, mein neues Produkt (kostenlos, damit ich endlich einige Tester habe) zu nutzen, um eine Staging-Umgebung einzurichten und einen Test durchzuführen, bevor sie ihre Produktionsumgebung aktualisieren.
Das ist richtig – diese Ember-CLI-Änderung hat keine Auswirkungen auf die HTML- oder CSS-Teile von Themes/Komponenten.
Im Allgemeinen können Sie problematische Theme-Komponenten identifizieren, indem Sie nach gelben Deprecation-Hinweisen in der Browser-JS-Konsole unter der alten, nicht-Ember-CLI-Umgebung suchen. (Der Wechsel zu Ember CLI ist der Grund, warum wir diese Deprecations eingeführt haben.)
Meta betreibt Ember CLI bereits seit einigen Wochen, und wir arbeiten daran, sicherzustellen, dass alle unsere offiziellen Themes und Plugins in der neuen Umgebung funktionieren.
Ok. Wenn ich also /admin/customize/themes.json (oder welchen Pfad auch immer es tatsächlich ist) abrufe, enthält es Warnungen. Glaubt ihr, dass es wahrscheinlich zu falschen Negativfällen kommt (also keine Warnungen, aber der Upgrade-Vorgang schlägt trotzdem fehl)?
Ach ja, falls es doch fehlschlägt, müsst ihr die Umgebungsvariable einfach wieder deaktivieren.
Bei Plugins: Wenn ich im JavaScript-Console Deprecation-Warnungen sehe, muss ich mich endlich darum kümmern, was sie bedeuten? Es scheint, als kämen sie von Komponenten, die ich verwende, und nicht von meinem eigenen Code, aber Ember und JavaScript sind mir immer noch ziemlich rätselhaft (trotz einer Menge Code, den ich zumindest größtenteils selbst geschrieben habe).
Nein, die Deprecation-Warnungen erscheinen zur Laufzeit in der Browserkonsole. Sie werden nicht in der Theme-REST-API angezeigt.
Im Moment könntest du das tun. Wir beabsichtigen jedoch, dies sehr bald zum nicht optionalen Standard zu machen, daher ist die beste Lösung, die Ursache zu beheben.
Ja, fürchte ich schon. Wenn du denkst, dass sie von Kernkomponenten stammen, oder du Schwierigkeiten hast, den Grund zu finden, eröffne bitte ein #dev-Thema mit den Details.
Ha. Wenn Sie Glück haben. Wenn Sie nicht so viel Glück haben, erhalten Sie einen vollständigen Fehler und einen vollständigen Stopp der JavaScript-Ausführung. Dies kann zu leeren oder beschädigten Seiten führen.
Bisher habe ich verschiedene Probleme gefunden, aber meistens den Verlust einiger Attribute des Discourse-Objekts, und daher müssen Sie einen anderen Weg finden, um auf Website- und Benutzerattribute zuzugreifen. (Hinweis: Diese sind innerhalb der Komponenten zugänglich. Sie können die Arbeit sehen, die ich kürzlich am TLP TC geleistet habe)