플러그인을 통해 register_asset로 추가된 js 파일들이 eval 함수에 문자열로 전달되는 것을 확인했습니다.
eval의 문제는, 여기에서 논의된 대로 전역 스코프에 객체를 추가하지 않는다는 점입니다. https://stackoverflow.com/questions/4670805/javascript-eval-on-global-scope 이는 js 라이브러리를 사용하려면 필수적인 부분입니다.
구체적으로, 플러그인에서 https://github.com/muaz-khan/RecordRTC/blob/master/RecordRTC.js를 사용하려고 했으나, 함수들이 ember 파일에서 접근할 수 없었습니다.
이 문제의 우회 방법은 webpack으로 파일을 처리하는 것이며, libraryTarget을 umd로 설정하면 됩니다.
많은 라이브러리가 이 방식으로 처리되며, 이는 기본적으로 잘 작동하는 것 같습니다.
저는 이 분야에 전문가가 아니지만, discourse가 등록된 에셋을 전역 스코프에 추가하는 것이 합리적인지 궁금합니다.
참고: 일부 내용이 부끄럽게 들릴 수 있어 죄송합니다. js 라이브러리를 discourse와 함께 작동시키기 위해 webpack을 만져야 한다는 것은 예상치 못했던 일이며, 이것이 이 글을 작성하게 된 동기였습니다.
네, 동의합니다. 많은 라이브러리가 그렇게 배포되고 있으며, 그런 것들은 원활하게 작동합니다. 이 문제를 살펴봐 주시고 확인해 주셔서 감사합니다 저는 webpack으로 라이브러리를 패키징하는 방식을 선택했는데, import를 하지 않아도 작동합니다. 하지만 프로덕션 모드에서 테스트를 했어야 했는데 그러지 못했습니다.