发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

Pug 3.0.0 发布,不再支持 Node.js 6/8

  • 2020-05-27
  • 本文字数:1180 字

    阅读完需:约 4 分钟

Pug 3.0.0发布,不再支持 Node.js 6/8

近日,Pug 3.0.0 正式发布,Pug 原名 Jade,是由 TJHolowaychuk 开发的一款模板引擎,也是 Haml 的 JavaScript 实现版本。Pug 3.0.0 增加了一些新功能,除此之外新版本将不再支持 Node.js 6 和 Node.js 8。

重大变化

  • 如果想使用支持 renderBuffer 的过滤器,read 插件必须返回到 Buffer。如果开发者不希望使用这一功能,则可以像从前一样返回 string。

  • 使用 minify 过滤器上的选项需要安装相应的 jstransformer,目前支持的有:

  • jstransformer-uglify-js:用于 JavaScript

  • jstransformer-clean-css:用于 CSS

  • 不再支持 Node.js 6 和 Node.js 8。

新功能

  • Pug 3.0.0 中加入了新的 each…of…循环。该语法可以使开发者遍历 Maps、Sets 和 Arrays,比之前的 each…in…语法更高效,此版本依旧支持 each…in… 语法。

  • 支持编写对二进制数据(例如图像)进行操作的过滤器,可以导入图像,应用过滤器并输出优化的< img/>标签,这一操作可以缩短页面加载时间,并使 Web 应用程序更加易于部署。


例如:


// options.jsexports.filters = {png: {// instead of a function, specify an object with a "renderBuffer" property// whose value is a function that takes a Buffer instead of a stringrenderBuffer: function(buffer, options) {var data = Buffer.from(buffer).toString('base64');return '<img src="data:image/png;base64, ' + data + '"/>';      }   }};
复制代码


然后就可以使用该过滤器了:


// foo.puginclude:png my-small-image.png
复制代码


  • 支持使用 generateCode 生成替换代码。

Rolling 版本

作者表示,自从他将 Pug 的单独的软件包合并到“mono repo”中以来,发行的难度增加了,后经一位 ThreadsStyling 的同事介绍了解到了语义释放,进而广泛地使用它,不过仍有一些限制:


  • 语义释放不适用于 mono 仓库;

  • 语义发布需要精确格式化的提交消息;

  • 语义发布每次提交仅允许一项功能/错误修复/重大修改。


作者一直认为解决此问题的方法是将更改日志附加到拉取请求,而不是提交请求。所以在过去的 6 个月中,他一直在探索这个问题的解决方案。此次的 Rolling 版本提供了一个简单的用户界面,可以将更改日志附加到请求中的特定软件包。然后,它会提供一个 CLI 来发布软件包,开发者可以在持续集成服务上运行该软件包。


Pug 采用简化语法的方式,将原本臃肿的 HTML 标记精简化,同时还有很多优点:超强的可读性、灵活易用的缩进、块扩展、代码默认经过代码处理以增加安全性、拥有编译和运行时的上下文错误报告、命令行编译支持、HTML5 模式、可选的内存缓存、联合动态的静态标记类、利用过滤器解析树的处理…


因为这些优点,Pug 收获了很多开发者的好评。开发者表示,Pug 和 Vue 简直是天作之合,大幅度提高了编码效率,不过 Pug 似乎不太适合与 React 一起使用,因为关闭标签会浪费太多行代码。

延伸阅读:

https://medium.com/rollingversions/pug-3-0-0-2897d6dec294


2020-05-27 18:231644

评论

发布
暂无评论
发现更多内容

“程”风破浪的开发者|元宇宙?Are you Sure?

六月的雨在InfoQ

虚拟世界 平行世界 元宇宙 10月月更 “程”风破浪的开发者

云计算商业周期超过其他产业,技术的天花板是商业机遇

B Impact

JS事件,你真的懂吗(捕获,冒泡)?

乌龟哥哥

10月月更

Docker | 网络模型以及容器通信

甜点cc

Docker 运维 10月月更

Centos7最小安装配置 | 运维 | Linux

Appleex

Linux 运维

开发者神器,代码文档终于有救了

Jackpop

私有云建设思路

阿泽🧸

私有云 10月月更

中东地区被低估,沙特偏好企业服务和云,新加坡稳定,东南亚复杂|出海

B Impact

一起学习 Go 语言设计模式之设计模式概述

宇宙之一粟

设计模式 Go 语言 10月月更

C++进阶之哈希(unordered_map/set的使用及其模拟)

雪芙花

c c++ 10月月更

如何提高Docker容器的安全性

乌龟哥哥

10月月更

“程”风破浪的开发者|区块链与Web3.0辨析

timerring

区块链 Web3.0 10月月更 “程”风破浪的开发者 Web2.0

阿里云无影向RPA开闸,金智维、影刀、弘玑已落地|生态商机

B Impact

2022年中国数字疗法市场洞察

易观分析

医疗

【愚公系列】2022年10月 Go教学课程 036-类型断言

愚公搬代码

10月月更

Glibc---_IO_file_xsputn函数逻辑分析

桑榆

源码刨析 10月月更 C++

高逼格!程序员专属音乐播。。。

Jackpop

开源免费!自己动手撸一个在线云盘!

Jackpop

一款轻巧快速的跨平台文档阅读器!

Jackpop

测试需求平台6-数据持久化与PyMySQL使用

MegaQi

Python 10月月更 测试开发实战

ZooKeeper应用案例

穿过生命散发芬芳

zookeeper 10月月更

C++精通之路:红黑树的应用(模拟实现map/set)

雪芙花

c c++ 10月月更

2022年都快结束了,Java的这些新技术、热门技术,你不会还不知道吧?

wljslmz

Java 微服务 后端 10月月更 jdk19

2022-10-22:以下go语言代码输出什么?A:moonfdd1;B:编译错误;C:运行时 panic。 package main import “fmt“ func main() {

福大大架构师每日一题

golang 福大大 选择题

Spring Boot「11」查看所有托管的 Bean

Samson

Java spring 学习笔记 spring-boot 10月月更

AfterShip 国际化获客冷启动经验:痛点、借力、连接

B Impact

再聊加班的感受

印哥爱学习

成长感悟

liunx:进程概念

雪芙花

c c++ 10月月更

消息推送渠道那么多,该怎么设计消息中心?

产品海豚湾

产品经理 产品设计 消息系统 产品架构 10月月更

“程”风破浪的开发者 | 基建及团队建设的方法论

甜点cc

团队管理 学习方法 基建 “程”风破浪的开发者

golang中的字符串

六月的

golang 字符串

Pug 3.0.0发布,不再支持 Node.js 6/8_大前端_李俊辰_InfoQ精选文章