主要更新
插件
本次更新中最重大的功能(如果没有就是3.4.20了). 可以通过插件便捷地在 Fewu 中插入你想要的功能(如果没有插件, 自己写一个扔到 node_modules 也是可以的), renderer以及parser也集成到插件的导出中.
核心功能中的 Logger, Server, CollectData 也已实现插件化(部分使用特有事件名, 不建议个人插件抢占该事件名), 未来计划将所有功能全部改为插件化.
异步事件管理
Context
改为继承自实现的 AsyncEventEmitter
, 支持预约异步事件, 并且当所有异步事件全部执行完成后才会进行下个阶段.
代码抽离
将 #util
下的大部分工具代码抽离至 @fewu-swg/fewu-utils
作为公共使用, 无需依赖整个 fewu 包体, 未来将考虑将所有工具代码全部抽离至 @fewu-swg/fewu-utils
.
其他更新
类型抽离
将部分类型一并抽离至声明包 @fewu-swg/abstract-types
, 便于 TS 插件开发.
改名
为什么要改啊! Context.plugin
现在改为 Context.extend
来与新的插件系统区分, 并将 Context.Deployer
Context.Renderer
Context.locals.*
移动到 Context.extend
.
写入监视
Deployer
现在通过专用 writeFile
函数对所有写入文件进行记录.
范例插件
新的包 @fewu-swg/fewu-plugin-basic-improvement
提供了基础的体验优化功能, 包括 RSS 订阅, 网站地图, 以及自定义文件复制功能.
@fewu-swg/fewu-renderer-markdown
以及 @fewu-swg/fewu-renderer-pug
也都已经迁移到插件系统.