Skip to content

Releases: postcss/postcss

8.4.8

07 Mar 02:10
@ai ai
8.4.8
Compare
Choose a tag to compare
  • Fixed end position in empty Custom Properties.

8.4.7

24 Feb 22:07
@ai ai
8.4.7
Compare
Choose a tag to compare
  • Fixed Node#warn() type (by @ybiquitous).
  • Fixed comment removal in values after ,.

8.4.6

01 Feb 11:36
@ai ai
8.4.6
Compare
Choose a tag to compare
  • Prevented comment removing when it change meaning of CSS.
  • Fixed parsing space in last semicolon-less CSS Custom Properties.
  • Fixed comment cleaning in CSS Custom Properties with space.
  • Fixed throwing an error on .root access for plugin-less case.

8.4.5

13 Dec 00:03
@ai ai
8.4.5
Compare
Choose a tag to compare
  • Fixed raws types to make object extendable (by @43081j).
  • Moved from Yarn 1 to pnpm.

8.4.4

27 Nov 15:02
@ai ai
8.4.4
Compare
Choose a tag to compare
  • Fixed absolute path in source map on zero plugins mode.

8.4.3

27 Nov 15:01
@ai ai
8.4.3
Compare
Choose a tag to compare
  • Fixed this.css.replace is not a function error.

8.4.2

26 Nov 18:45
@ai ai
8.4.2
Compare
Choose a tag to compare
  • Fixed previous source map support in zero plugins mode.

8.4.1

24 Nov 22:05
@ai ai
8.4.1
Compare
Choose a tag to compare
  • Fixed Stringifier types (by @43081j).

8.4 “President Camio”

24 Nov 13:19
@ai ai
8.4.0
Compare
Choose a tag to compare

President Camio seal

PostCSS 8.4 brought ranges for warnings and errors, smaller node_modules size, lazy parsing to avoid PostCSS does nothing warning, and TypeScript fixes.

Thanks to Sponsors

This release was possible thanks to our community.

Sponsored by Tailwind CSS Sponsored by ThemeIsle

If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:

Rages for Errors and Warnings

@adalinesimonian, the author of amazing Stylelint extension for VS Code, added ranges to errors and warnings.

result.warn(msg, { index })           // One character warning at index
result.warn(msg, { endIndex })        // Starts at node start, ends at endIndex
result.warn(msg, { index, endIndex }) // Starts at index, ends at endIndex
result.warn(msg, { start })           // Starts at start, ends at node end
result.warn(msg, { end })             // Starts at node start, ends at end
result.warn(msg, { start, end })      // Starts at start, ends at end
result.warn(msg, { word })            // Starts at word location, ends at word index + length

It will improve DX in the IDE extension.

Lazy Parsing

Previously, we found that many tools run PostCSS even if the developer didn’t pass any PostCSS plugins. Parsing is the most expensive step in CSS processing. It led to a waste of resources without any reason.

We tried to resolve the problem by adding a PostCSS does nothing warning. But it didn’t force tool authors to be more careful with user’s resources.

If PostCSS sees that tool call it without passing plugins (or changing parser/stringifier), PostCSS will not parse CSS (until toll will call Result#root). In 8.4, @bogdan0083 (with the help of @WilhelmYakunin) tries to solve the problem in another way. It allows us to save resources and remove the PostCSS does nothing warning.

// No plugins, we do not parse CSS
let result = await postcss().process(css, { from  })
result.css  // Is the same string passed to process()
result.map  // Special 1-to-1 source map
result.root // CSS will parsed only here

Install Size Reduction

With ≈60M weekly downloads, PostCSS has responsibility for the world’s resource spending.

Together with @7rulnik we reduced source-map-js size. It is transitive dependency of PostCSS.

In 8.4, we moved to a fixed version of source-map-js, which reduced the postcss size in your node_modules from ≈1 MB to 0.3 MB. With the huge popularity of PostCSS, it will free a lot of resources on our CIs.

PostCSS install size reduction

Migration from Jest to uvu

@kimoofey refactored all tests from the popular Jest framework to small and fast uvu.

It will not affect end-users. However, it reduced our node_modules size by 33 MB and made tests twice faster (yarn install & yarn unit: 24 → 13 seconds).

TypeScript Fixes

  • Added Processor types.
  • Added Stringifier types (by @43081j).
  • Fixed types Root and Document in result values (by @43081j).
  • Fixed Node#walkRules() types (by @hudochenkov).

Other Changes

8.3.10

20 Oct 17:47
@ai ai
8.3.10
Compare
Choose a tag to compare
  • Fixed Maximum call stack issue of some source maps (by @yetingli).