情况
我们希望在 Discourse 实例中引入外部 logging JS 库,以通过使用这个轻量级日志包装器来改进调试工作流。例如,我们可以通过 log.setLevel('debug') 设置日志级别。
该外部库应在我们应用上安装的所有自定义插件、主题和主题组件中均可用。
实现方案
• 通过 register_asset 在多个插件中导入 JS 文件,是否会导致该文件被多次加载?
• 在 Ember 弃用其日志工具 并转向使用 console.log 之后,是否有其他具有类似功能的 JS 库可供选择?
我们目前采取以下方案来实现:
- 安装一个插件,该插件负责导入外部 JS,并将 JS 库挂载到全局 window 对象上(
window.log = log)。
• 确保 JS 库仅被导入一次。
• 其他插件、主题或主题组件将依赖该插件。但这会导致开源插件强制要求用户同时安装两个插件。
您认为这个方案合理吗?或者您是否有其他建议?