Плагин вставляет i-frame в Discourse, и вы можете найти его здесь
Я стараюсь поддерживать его более или менее актуальным с последней версией, поэтому недавнее изменение, ломающее совместимость, стало неожиданностью. В данный момент мы используем версию 3.3.0.beta1-dev.
В консоли я получаю три сообщения об ошибках, которые выглядят так:
docuss.js:225 Uncaught (in promise) ReferenceError: Ember is not defined
at docuss.js:225:1
Скорее всего, объект Ember был удалён из API Discourse в недавней версии, поэтому эта ошибка возникает после обновления Discourse, затрагивающего эти объекты.
Вот все исправления, которые я внес:
Изменение 1
assets\javascripts\discourse\initializers\docuss.js.es6
строка 232
старый код:
const afterRender = res =>
new Promise(resolve => {
// @ts-ignore
Ember.run.schedule('afterRender', null, () => resolve(res))
новый код:
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
старый код:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
})
новый код:
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
старый код:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
новый код:
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
Вот рабочая платформа с включённым плагином, на случай если это поможет
Встречался ли кому-нибудь подобный вопрос? Кто-нибудь сталкивался с проблемами из-за изменений в объектах API Ember? Любые предложения по их исправлению будут очень кстати.