Parcel CSS:一个新的 CSS 解析器、转换器和压缩器

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费积分!

Parcel 创建者 Devon Govett 发布了 最新消息,即 Parcel CSS

一个用 Rust 编写的 CSS 解析器、转换器和压缩器。

不错。CSS 世界确实需要这样的处理方式革新。

几周前刚写过

您知道 esbuild 如何彻底改变了 JavaScript 处理世界吗?也许我们需要一个 cssbuild?它可以处理导入并进行捆绑(我们通常依赖 Sass 来完成)。重点在于极快的速度。也许它是基于插件的,并且与 PostCSS API 兼容,以便现有的 PostCSS 插件可以在其上工作。也许它可以生成 sourcemap 并进行修改。也许它也可以运行您的 Sass,我不知道。但像这样激发 CSS 生态系统的东西可能会很酷。

接近!看起来它进行捆绑(至少独立时不进行)。我想它必须为此发明一种语法,因为我认为 Sass 有点后悔它像原生 CSS 一样使用@import的方式的模糊性,我不会责怪任何人不想走这条路。这绝对是一片棘手的领域,因为发明语法有点把它归入不同的工具类别。但我认为这值得一试,因为将 CSS 分解成更小的文件但在开发中将其捆绑在一起就像……人们做的事情,我可以看到人们非常想使用它,而不必一定要使用 Parcel(可以捆绑)。

那么为什么要将您的 CSS 通过这个工具运行呢?从文档来看,您可能希望这样做是因为……

  • 它是一个压缩器,
  • 它进行供应商前缀,
  • 它可以处理 CSS 模块(经典库,而不是 原生模块),以及
  • 您可以获得 sourcemap。

(最初,我以为它利用其他工具来完成这些任务,因为像 Autoprefixer 和 cssnano 这样的工具出现在项目的package.json文件中,但正如下面的 Devon 的评论所证实的那样,Parcel CSS 是这些工具的替代品,它不使用它们。)

但还有一个!在我看来,Parcel CSS 的杀手级功能是他们所谓的“语法降低”,这意味着您可以今天使用“未来”的 CSS(例如,嵌套),因为它会被处理成浏览器可以理解的东西,就像 Babel 在 JavaScript 中做的那样。这在精神上类似于 postcss-preset-env

并且至关重要的是,它很快

Tow line charts chowing how fast Parcel CSS bundles packages and how small the resulting files are.
Parcel CSS 速度很快并且输出较小的文件。(来源:@devongovett)

Parcel CSS 会成为一个生态系统吗?

所以我想最大的问题是:如果 Parcel CSS 成为首选的 CSS 解析器,我们会得到插件吗?如果我们这样做,它会成为一个像 PostCSS 插件 那样强大的生态系统吗?