Build failure: SCSS variables leak through to LightningCSS
#1,343 opened on May 20, 2026
Repository metrics
- Stars
- (8,563 stars)
- PR merge metrics
- (Avg merge 1d 1h) (462 merged PRs in 30d)
Description
This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext
mainvs Next.jsv16.2.6, 2026-05-20).
Problem
SCSS variables ($var: red;) leak through into CSS module output without being processed by the Sass compiler first. LightningCSS receives raw SCSS syntax and treats $var: red; as an invalid selector.
[plugin vite:css-post]
SyntaxError: [lightningcss minify] Invalid empty selector
1 | $var: red;._className_10j3d_2 {
| ^
This suggests the CSS pipeline is feeding unprocessed SCSS content directly to the CSS minifier.
Estimated Impact
~4 build failures across the deploy suite.
Affected Test Suites
test/e2e/app-dir/scss/composes-external/composes-external.test.tstest/e2e/app-dir/scss/nm-module-nested/nm-module-nested.test.ts
Recommendation
-
Reproduce first in vinext's own test suite. Add a test with an SCSS file that uses variables and CSS modules composition. Confirm the build fails.
-
Investigate the CSS processing pipeline. The Sass compiler should process
.scssfiles before LightningCSS minification. Check if vinext's Vite config properly registers the Sass preprocessor for all SCSS files, including those imported via CSS modulescomposesfrom external files. -
Check CSS module
composeshandling. Thecomposes: ... from './external.scss'pattern may bypass the Sass preprocessor.