【问题标题】:Writing a plugin file in ClojureScript for use in CKEditor在 ClojureScript 中编写插件文件以在 CKEditor 中使用
【发布时间】:2020-07-02 18:49:52
【问题描述】:

我目前有一个项目正在使用 ClojureScript、shadow-cljs、re-frame 和 CKEditor。

我正在尝试弄清楚如何使用 CLJS 而不是 JS 为 CKEditor 编写自定义插件。

CKEditor 使用以下方式加载外部自定义插件

// Loads a plugin from '/myplugins/sample/my_plugin.js'.
CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );

有没有办法在我当前的项目中用 CLJS 写my_plugin.js

【问题讨论】:

  • 我认为您必须更加具体。你有没有尝试过?你遇到了什么问题?

标签: clojurescript ckeditor4.x reagent re-frame shadow-cljs


【解决方案1】:

我认为您的问题是:我有一个使用 shadow-cljs 的 CLJS 项目,并且恰好使用 CKEditor 作为库。我还想在同一个项目中为 CKEditor 创建一个插件。

如果是这种情况,我认为您需要的只是为您的:builds 文件的:builds 部分中的插件代码创建一个新版本并正确配置它(例如源文件等)。有关详细信息,请参阅 shadow-cljs 用户指南的 Build Configuration 部分。

一旦你构建了你的插件,它会将输出的 JS 文件放在某个位置。在构建主项目之前,您可能需要将此插件 JS 文件复制到“父”项目中的某个位置。

【讨论】:

  • 我确实相信您的回答是朝着正确的方向发展,但是我对 CLJS 和 shadow-cljs 的不熟悉正在妨碍我。稍后我将不得不回到这一点,希望我能让它发挥作用。谢谢你的回答。
  • 我不太了解您的项目以及您希望如何扩展 CKEditor,但根据插件的功能,您可能需要考虑用纯 JavaScript 编写它。 ClojureScript 很棒,但对于一个微不足道的扩展来说,它可能是矫枉过正。
  • 我听到了,用纯 JavaScript 编写可能更容易,但由于我已经在 CLJS 环境中,我认为也可以使用 ClojureScript 来开发插件。不过,这种想法似乎有点幼稚。在我看来,如果您必须启动另一个环境来为已经使用 CLJS 开发的项目生成 JS 代码,那么这对 CLJS 来说将是一个大漏洞;我相信与大多数事情一样,这可能是有充分理由的,但它确实粉碎了我“一种语言来统治一切”的梦想:) 无论如何感谢您的帮助。
  • 可能会有一些希望:也许您可以将 CKEditor 插件声明为依赖于主应用程序代码的模块,这样您就没有 CLJS 运行时的两个副本,而只有一个。请参阅 CLJS 用户指南的 Code Splitting 部分。
  • 不幸的是,这个应用程序是一个 SPA,因此不能选择单独的页面。
猜你喜欢
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
相关资源
最近更新 更多