写点什么

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:231880

评论

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

OpenClusterManagement 开源之夏 2022 来了

阿里巴巴云原生

阿里云 云原生 开源之夏

HTML语法基本规范

恒山其若陋兮

5月月更

Linux环境混合使用静态库与动态库

Loken

音视频 5月月更

Docker下RabbitMQ四部曲之二:细说RabbitMQ镜像制作

程序员欣宸

Java RabbitMQ 5月月更

JVM 线上问题定位实战(CPU 飙升)

Ayue、

JVM

浅谈Http,Https

工程师日月

HTTP 5月月更

一种直流电池/电源正反接均可供电的电路方案

不脱发的程序猿

电路设计 电源电路 嵌入式硬件 直流电池/电源正反接电路

JDK 15 以上版本的字符串块

HoneyMoose

一、KVM虚拟化的功能特性

穿过生命散发芬芳

kvm 5月月更

一文学完Linux Shell编程,比书都好懂

编程攻略

Linux

SAAS服务的特点

Geek_99967b

小程序 SaaS

LabVIEW和Arduino的巧妙结合(基础篇—1)

不脱发的程序猿

单片机 LabVIEW Arduino 上位机

实践GoF的设计模式:工厂方法模式

华为云开发者联盟

设计模式 工厂方法模式

基于信息检索和深度学习结合的单元测试用例断言自动生成

华为云开发者联盟

深度学习 单元测试 信息检索

车联网的发展面临的难点怎样突破

Geek_99967b

小程序 车联网

将微信小程序生成商用App很简单吗?

Geek_99967b

ide 小程序转app 小程序预览

智能手表的机遇与挑战并存

Geek_99967b

数据安全 物联网, 智能手表

LabVIEW控制Arduino LED灯闪烁(基础篇—2)

不脱发的程序猿

单片机 LabVIEW Arduino LED灯闪烁 LIAT

gitlab 8.13.6添加server hook后保护分支失效

阿呆

#GitLab gitlab hook 保护分支

实现内网穿透(二)

风斩断晚霞

Go websocket

Java Core「6」反射与SPI机制

Samson

学习笔记 5月月更 Java core

AIRIOT物联网低代码平台如何配置Modbus TCP协议?

AIRIOT

低代码平台 驱动配置

Java 8 中的设计模式策略

HoneyMoose

Python图像处理丨图像缩放、旋转、翻转与图像平移

华为云开发者联盟

Python 图像平移 图像缩放

这道静态变量题,我居然考了0分

华为云开发者联盟

Java 静态变量 Java static

漫画 | 新一代软件架构会影响到谁?

阿里巴巴云原生

阿里云 云原生 事件总线 EventBridge

中兴通讯加入龙蜥社区,共建ICT全场景开源生态

OpenAnolis小助手

开源 生态 龙蜥社区 CLA 中兴通讯

图分析的22种算法与图形理解

清林情报分析师

数据分析 知识图谱 图算法 图论 知识结构

企业智能化转型meetup回顾|开源BI & AI助力企业转型之旅三阶段!

第四范式开发者社区

人工智能 开源 企业 大数据平台 智能化转型

读书笔记之怪诞行为学6:非凡的决定

宇宙之一粟

读书笔记 5月月更

怎样为自己的小程序打包为App

Geek_99967b

小程序 小程序转app

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