이 플러그인은 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행
기존:
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
플러그인이 켜져 있는 라이브 플랫폼이 도움이 될 수 있으니 참고하세요
Ember API 객체 변경으로 인한 문제를 겪어 보신 분이 계신가요? 이 문제를 해결하는 방법에 대한 조언을 주시면 감사하겠습니다.