プラグインは Discourse に i-frame を挿入します。 こちらで見つけることができます。
最新バージョンにほぼ追従しているので、破壊的変更は最近発生しました。現在、3.3.0.beta1-dev を実行しています。
コンソールには、次のような 3 つのエラーメッセージが表示されます。
docuss.js:225 Uncaught (in promise) ReferenceError: Ember is not defined
at docuss.js:225:1
この Ember オブジェクトは、最近の Discourse のバージョンで Discourse API から削除された可能性が非常に高く、このエラーは、これらのオブジェクトに影響を与える Discourse のアップグレード後に発生します。
私が加えた修正はすべてここにあります。
変更 1
assets\javascripts\discourse\initializers\docuss.js.es6
232 行目
old:
const afterRender = res =>
new Promise(resolve => {
// @ts-ignore
Ember.run.schedule('afterRender', null, () => resolve(res))
new:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
変更 2
assets\javascripts\discourse\lib\DcsIFrame.js.es6
858 行目
old:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
})
new:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
変更 3
assets\javascripts\discourse\lib\onDidTransition.js.es6
239 行目
old:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
new:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
これにより、コンソール上のすべてのエラーメッセージは解消されましたが、新しいエラーがいくつか発生しました。
Discourse v3.3.0.beta1-dev — https://github.com/discourse/discourse/commits/4c7d58a883 — Ember v5.5.0
app.js:197 Uncaught ReferenceError: Ember is not defined
at s.callback (docuss.js:210:1)
at s.exports (loader.js:106:1)
at requireModule (loader.js:27:1)
at y (app.js:171:18)
at w (app.js:194:19)
at app.js:157:29
at e.start (app.js:51:5)
at HTMLDocument.<anonymous> (start-app.js:5:7)
at discourse-boot.js:20:12
at discourse-boot.js:1:1
プラグインが有効になっているライブプラットフォームはこちらです。参考になれば幸いです
Ember API オブジェクトの変更で問題が発生したことは誰かにありますか?修正方法に関する提案をいただけると幸いです。