Move autoprefixer from gem to node

What does this MR do and why?

Move autoprefixer from gem to node

This moves autoprefixer from a gem to node. This means we do not postprocess our CSS with autoprefixer in sprockets, which was executing JavaScript with execjs and a bundled version of autoprefixer, but we do it directly when compiling our CSS.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

N/A

How to set up and validate locally

Validation can be done in any compiled CSS file.

For example: https://gitlab.com/gitlab-org/gitlab/-/jobs/6300343158/artifacts/file/public/assets/application_utilities-c99f90002720aa209d8b1b29b5f79353bbad8a07ba7cb03e8e9060ea6cf22d59.css

It contains the class:

.gl-min-w-fit-content {
  min-width: -moz-fit-content;
  min-width: fit-content;
}

The source only defines:

@mixin gl-min-w-fit-content {
  min-width: fit-content;
}

but Firefox doesn't support fit-content, but has it feature flagged under -moz-fit-content (as per https://caniuse.com/intrinsic-width). Therefore autoprefixer did it's job.

That being said, there might be a diff between the thing that the gem returned and that the js versions returns, as the JS version is newer.

Edited by Peter Leitzen

Merge request reports

Loading