我曾之前问过关于如何设置本地环境以在开发插件时更快地编码,并且我知道其他人也问过。
我一直在使用一种新的工作流程,效果很好,我想分享一下,以防对其他人有所帮助。它并非解决了所有问题,但让事情变得更加愉快。以下是详细信息:
首先,我之前遇到的问题:
要开发插件,我必须从本地的 Discourse 实例进行编码,这非常慢,因为:1)对文件的任何更改都需要重新加载页面,而我的计算机在运行 Discourse 时加载速度非常慢(每次页面重新加载大约需要 30 秒),2)我用来测试的本地 Discourse 开发站点非常慢(导航等速度慢),3)对后端插件代码的任何更改都需要停止服务器并重新启动——这可能需要几分钟。在此期间,我的计算机风扇会狂转。
因此,我可能需要一小时的编码时间才能完成通常在 10 分钟内就能完成的事情,而工作流程却很顺畅。
我的解决方案
与开发插件相比,由于Discourse 主题 CLI(我使用它的步骤在此),编码主题组件的工作流程非常棒。它快速而流畅。
为什么编码主题或主题组件更快更容易
使用主题 CLI 工具,您可以在本地编码主题,但“监视它”(即运行主题)在一个实时站点上(可以是您的实际站点,您的实际站点但仅处于预览模式,或您设置的测试实时站点)。
所以您实际上不需要在您的机器上运行 Discourse 本身——因此我的机器不会像插件那样变慢。每当您进行更改时,只需刷新您链接到的实时站点,更改就会在那里显示。
所以,我意识到:大多数时候当我编写插件时,实际上是在处理前端内容(hbs 文件、javascript 文件等)。而花费在后端内容(设置路由、创建自定义字段等)上的时间很少。
因此,与其将所有内容一起编码,不如将所有前端编码移到一个主题组件中,以利用主题组件的工作流程。
当需要更新后端内容时,我必须再次在插件中进行编码——但这只占我插件开发时间的约 20%(至少在我看来)。这使我现在可以将 80% 的时间用于更友好的主题组件工作流程。
当需要将所有内容迁移到生产环境时,我可以:
- 将主题组件和插件分开,然后在相关的 Discourse 站点上同时使用它们,或者
- 如果将所有代码放在一个地方很重要,那么届时将主题组件代码移到插件中。诚然,这可能有点繁琐,但您只需要在准备好更新生产环境时才这样做,同时享受更快的主题组件工作流程。
就是这样。
这并非革命性的。但它让我在某个曾经让我头疼的问题上有了很大的改进。