Skip to content

Commit 452449f

Browse files
committed
Don't run PostCSS for facade Module CSS module
1 parent f467607 commit 452449f

File tree

1 file changed

+22
-17
lines changed
  • turbopack/crates/turbopack/src/module_options

1 file changed

+22
-17
lines changed

turbopack/crates/turbopack/src/module_options/mod.rs

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,18 @@ impl ModuleOptions {
157157
])
158158
});
159159

160+
// For React Client References, the CSS Module "facade" module lives in the parent (server)
161+
// module context, but the facade's references should be transitioned to the client (and
162+
// only then be processed with Webpack/PostCSS).
163+
let module_css_external_transform_condition = RuleCondition::Any(vec![
164+
// If module css, then only when (Inner or Analyze or Compose)
165+
// <=> (not (module css)) or (Inner or Analyzer or Compose)
166+
RuleCondition::not(module_css_condition.clone()),
167+
RuleCondition::ReferenceType(ReferenceType::Css(CssReferenceSubType::Inner)),
168+
RuleCondition::ReferenceType(ReferenceType::Css(CssReferenceSubType::Analyze)),
169+
RuleCondition::ReferenceType(ReferenceType::Css(CssReferenceSubType::Compose)),
170+
]);
171+
160172
let mut ts_preprocess = vec![];
161173
let mut ecma_preprocess = vec![];
162174
let mut postprocess = vec![];
@@ -490,9 +502,15 @@ impl ModuleOptions {
490502
};
491503

492504
rules.push(ModuleRule::new(
493-
RuleCondition::Any(vec![
494-
RuleCondition::ResourcePathEndsWith(".css".to_string()),
495-
RuleCondition::ContentTypeStartsWith("text/css".to_string()),
505+
RuleCondition::All(vec![
506+
RuleCondition::All(vec![
507+
RuleCondition::Any(vec![
508+
RuleCondition::ResourcePathEndsWith(".css".to_string()),
509+
RuleCondition::ContentTypeStartsWith("text/css".to_string()),
510+
]),
511+
RuleCondition::not(module_css_condition.clone()),
512+
]),
513+
module_css_external_transform_condition.clone(),
496514
]),
497515
vec![ModuleRuleEffect::SourceTransforms(ResolvedVc::cell(vec![
498516
ResolvedVc::upcast(
@@ -675,20 +693,7 @@ impl ModuleOptions {
675693
RuleCondition::ResourceBasePathGlob(Glob::new(key.clone()).await?)
676694
},
677695
RuleCondition::not(RuleCondition::ResourceIsVirtualSource),
678-
RuleCondition::Any(vec![
679-
// if module css, then only when internal or analyze
680-
// <=> (not (module css)) or (Inner or Analyzer or Compose)
681-
RuleCondition::not(module_css_condition.clone()),
682-
RuleCondition::ReferenceType(ReferenceType::Css(
683-
CssReferenceSubType::Inner,
684-
)),
685-
RuleCondition::ReferenceType(ReferenceType::Css(
686-
CssReferenceSubType::Analyze,
687-
)),
688-
RuleCondition::ReferenceType(ReferenceType::Css(
689-
CssReferenceSubType::Compose,
690-
)),
691-
]),
696+
module_css_external_transform_condition.clone(),
692697
]),
693698
vec![ModuleRuleEffect::SourceTransforms(ResolvedVc::cell(vec![
694699
ResolvedVc::upcast(

0 commit comments

Comments
 (0)