diff --git a/.changeset/young-frogs-grab.md b/.changeset/young-frogs-grab.md new file mode 100644 index 000000000..bf6e1e8b4 --- /dev/null +++ b/.changeset/young-frogs-grab.md @@ -0,0 +1,5 @@ +--- +"@farmfe/core": patch +--- + +revert preset-env match & add enforce exclude diff --git a/crates/plugin_polyfill/src/lib.rs b/crates/plugin_polyfill/src/lib.rs index a2b55900e..e649ef80c 100644 --- a/crates/plugin_polyfill/src/lib.rs +++ b/crates/plugin_polyfill/src/lib.rs @@ -24,12 +24,13 @@ pub struct FarmPluginPolyfill { config: swc_ecma_preset_env::Config, include: Vec, exclude: Vec, + enforce_exclude: Vec, assumptions: Assumptions, } impl FarmPluginPolyfill { pub fn new(config: &Config) -> Self { - let (config, include, mut exclude, assumptions) = match &*config.preset_env { + let (config, include, exclude, assumptions) = match &*config.preset_env { PresetEnvConfig::Bool(_) => { let PresetEnvConfigObj { include, @@ -68,13 +69,12 @@ impl FarmPluginPolyfill { } }; - exclude.push(ConfigRegex::new("node_modules/core-js")); - Self { config, include, exclude, assumptions, + enforce_exclude: vec![ConfigRegex::new("node_modules/core-js")], } } } @@ -100,22 +100,17 @@ impl Plugin for FarmPluginPolyfill { // ignore node_modules by default let relative_path = param.module_id.relative_path(); - let is_exclude = || { - if self.exclude.is_empty() { - return false; - } - - self.exclude.iter().any(|r| r.is_match(relative_path)) - }; - - if is_exclude() { + if !self.include.iter().any(|r| r.is_match(relative_path)) + && self.exclude.iter().any(|r| r.is_match(relative_path)) + { return Ok(None); } - let is_include = - || self.include.is_empty() || self.include.iter().any(|r| r.is_match(relative_path)); - - if !is_include() { + if self + .enforce_exclude + .iter() + .any(|r| r.is_match(relative_path)) + { return Ok(None); }