hydrawiki/lessoid

使用 Node.js 的持久 Less.js RESTful API 解析服务。

安装: 512

依赖项: 0

建议者: 0

安全性: 0

星星: 0

分支: 0

语言:JavaScript

2.0.2 2019-12-11 22:25 UTC

This package is auto-updated.

Last update: 2024-09-12 09:17:10 UTC


README

一个作为 Node.js RESTful API 运行的 LESS 解析器,并实现了官方 Less.js 包。 (见以下说明。)它旨在作为 oyejorge/less.php 包的替代品,并可作为 MediaWiki 的直接替换使用。它也可以用于其他项目。

为什么选择 LESSoid?

在 Hydra Wiki 农场中,默认的 LESS.php 解析器与诸如 gluster 等共享文件系统的缓存不兼容,并依赖于缓慢的文件缓存技术。这个 Node.js 解决方案使用内存缓存,并可以使用 Redis 在多个 Web 节点之间共享缓存。

至于名称,我们认为它符合 MediaWiki 的命名约定。Parsoid、Mathoid... 为何不叫 LESSoid?

LESSoid 与 LESS.php 的比较

  • 优点

    • 初步基准测试显示解析和高度并发情况下的性能显著提高。
      • 一旦代码进入 beta 阶段,我们将发布官方基准测试。
    • 可以立即实施新的 Less.js 发布版本来获取新功能和错误修复。
  • 缺点

    • 无法作为服务运行 LESSoid 的共享主机上的安装将回退到从命令行调用 lessc。在大多数情况下,lessc 的回退将比 less.php 慢。

它是如何工作的?

LESSoid 包提供了一个与同名的 less.php 类兼容的 Less_Parser 类。现有项目应该能够移除现有的 less.php 包,并替换为 lessoid 包。如果有兼容性问题,请报告问题

所有文件包含、变量和其他所需部分都通过到运行在本地的 LESSoid 服务的 RESTful API 请求进行传递,该服务返回一个 JSON 响应作为编译后的 CSS。如果 LESSoid 服务没有运行,则将自动回退到通过命令行调用 lessc。lessc 的回退可以防止网站上的 CSS 丢失,但可能像 less.php 一样慢。

要求

  • PHP 7.0+
  • Node.js 4+
  • 进程管理服务,如 supervisord、god、launchctl 或其他。提供了 god 配置示例。
    • 另外,如果您还没有进程管理服务,PM2 是一个非常好用且用户友好的进程管理器,非常适合 LESSoid。
  • 您的项目的代码检出到服务器上,包含所有必要的 LESS、CSS 和其他要求,必须作为 LESSoid 服务存在。

如何使用

通过 composer 安装到您的项目中

composer require hydrawiki/lessoid

没有 composer,从 GitHub 项目下载最新版本,并将其放置在项目中适当的位置。 (https://github.com/HydraWiki/lessoid/releases

请注意:这与 oyejorge/less.php 不兼容,因此请确保您(或 composer)不需要它!

配置

  • lib/config.defaults.ini 中,您可以找到 MediaWiki shim 的配置,该 shim 将 MediaWiki 与 LESSoid 交互。
    • 最好不要修改此文件,而是创建一个lib/config.ini文件,并将任何设置覆盖放在其中,这样未来的更新就不会撤销您的配置更改。
  • services/lessoid/config.json中,您将找到LESSoid服务的配置选项。这些选项在此阶段应该大部分都很直观。

当前开发状态

这是alpha级别的代码,首要目标是与MediaWiki无缝工作。需要正确实施各种配置设置,以确保它不仅能在MediaWiki上无缝工作,还能在框架上工作。

对于MediaWiki实现,目前实现了一个Less_Parser类,该类模拟了MediaWiki默认使用的来自Less.php的Less_Parser类。它运行得很好,但如果不需要直接进入MediaWiki,可能可以使其更加简洁。

其他注意事项

我们目前正在使用Less.js版本3.9.0,并进行了一些小的修改,使其在MediaWiki环境中更加友好。未来我们计划消除这个修改,并允许通过node包管理器进行用户升级。