写点什么

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

  • 2020 年 5 月 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 年 5 月 27 日 18:231299

评论

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

知乎,挣钱?果然有长尾效应

非著名程序员

程序员 副业 副业赚钱 知乎 好物推荐

linux上强大的字符串匹配工具详解-grep

X先生

Shell grep

数十家技术社区联名推荐的GeekOnline来了!

Geek_116789

重读vue2.0风格指南,我整理了这些关键规则

前端有的玩

Java Vue 代码规范

有趣的条漫版 HashMap,25岁大爷都能看懂

古时的风筝

hashmap

变性手术后,产品总监和当当网打起了官司

赵新龙

法律 判决书 案例

Java8——Stream流

Java旅途

第六期总结

GAC·DU

如何做一次完美的 ABTest?

vivo互联网技术

数据分析 AB testing实战

数据分析师完整的指标体系构建 (干货)

博文视点Broadview

数据挖掘 读书笔记 数据分析 数据 求职

技术科普丨服务发现和负载均衡的来龙去脉

华为云开发者社区

负载均衡 微服务 开发者工具 服务端 服务

架构师训练营week06 学习总结

GunShotPanda

有了“质量墙”,程序员再也没有秃头的烦恼

华为云开发者社区

程序员 软件 代码审查 项目 代码

解决方案|智能消防预警系统突破高层楼房限制

华为云开发者社区

AI 物联网 边缘计算 华为云

猿灯塔:spring Boot Starter开发及源码刨析(七)

猿灯塔

计算机网络基础(四)---网络层-ARP协议与RARP协议

书旅

laravel 计算机网络 网络协议 计算机基础 网络层

一文快速掌握华为云IPv6基础知识及使用指南

华为云开发者社区

物联网中台 物联网 网络 华为云

如何帮助技术员工高效成长?这几家企业的做法值得借鉴

极客时间企业版

研发管理 研发团队培训

我从LongAdder中窥探到了高并发的秘籍,上面只写了两个字...

why技术

jdk 高并发 LongAdder

API接口管理平台YAPI的搭建

Man

DevOps APi设计 YAPI

Idea中关于Js中的一些警告

阡陌r

腾讯面了五轮,面委挂了,挂的原因让大家唏嘘...

程序员生活志

腾讯 面试

GitHub Actions和mp-ci助力微信小程序持续集成

neo

微信小程序 taro GitHub CI/CD

中台,很多人理解的都不对

DeeperMan

数据中台 中台战略

信创舆情一线--十五部门印发指导意见进一步促进服务型制造发展

统小信uos

小白如何学习操作系统?

cxuan

操作系统

Java HashMap 的那么多为什么

多选参数

Java Java源码

简单的了解一下K8S,并搭建自己的集群

SH的全栈笔记

Kubernetes 微服务

架构师训练营week06 作业

GunShotPanda

优傲机器人以人机协作助力中国“智能制造”落地

Geek_116789

探索无限潜能,英特尔神经拟态计算除了有“嗅觉”还能有“触觉”

最新动态

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