diff --git a/packages/next-swc/crates/napi/src/bundle/mod.rs b/packages/next-swc/crates/napi/src/bundle/mod.rs index de234aaff0fd5..a9e0a66121f2c 100644 --- a/packages/next-swc/crates/napi/src/bundle/mod.rs +++ b/packages/next-swc/crates/napi/src/bundle/mod.rs @@ -13,7 +13,7 @@ use swc_core::{ common::{ collections::AHashMap, errors::{ColorConfig, Handler}, - BytePos, FileName, Globals, SourceMap, Span, GLOBALS, + BytePos, FileName, SourceMap, Span, }, ecma::ast::*, ecma::atoms::JsWord, @@ -69,11 +69,10 @@ impl Task for BundleTask { .map(JsWord::from) .collect::>(); - let globals = Globals::default(); let comments = self.c.comments().clone(); // let mut bundler = Bundler::new( - &globals, + self.c.globals(), self.c.cm.clone(), CustomLoader { cm: self.c.cm.clone(), @@ -89,46 +88,46 @@ impl Task for BundleTask { }, Box::new(CustomHook), ); - GLOBALS.set(&globals, || { - let mut entries = HashMap::default(); - let path: PathBuf = option.entry; - let path = path - .canonicalize() - .context("failed to canonicalize entry file")?; - entries.insert("main".to_string(), FileName::Real(path)); - let outputs = bundler.bundle(entries)?; - - let output = outputs.into_iter().next().ok_or_else(|| { - anyhow!("swc_bundler::Bundle::bundle returned empty result") - })?; - - let source_map_names = { - let mut v = SourceMapIdentCollector { - names: Default::default(), - }; - - output.module.visit_with(&mut v); - - v.names + + let mut entries = HashMap::default(); + let path: PathBuf = option.entry; + let path = path + .canonicalize() + .context("failed to canonicalize entry file")?; + entries.insert("main".to_string(), FileName::Real(path)); + let outputs = bundler.bundle(entries)?; + + let output = outputs + .into_iter() + .next() + .ok_or_else(|| anyhow!("swc_bundler::Bundle::bundle returned empty result"))?; + + let source_map_names = { + let mut v = SourceMapIdentCollector { + names: Default::default(), }; - let code = self.c.print( - &output.module, - None, - None, - true, - EsVersion::Es5, - SourceMapsConfig::Bool(true), - &source_map_names, - None, - false, - Some(&comments), - true, - false, - )?; - - Ok(code) - }) + output.module.visit_with(&mut v); + + v.names + }; + + let code = self.c.print( + &output.module, + None, + None, + true, + EsVersion::Es5, + SourceMapsConfig::Bool(true), + &source_map_names, + None, + false, + Some(&comments), + true, + false, + )?; + + Ok(code) }, ) .convert_err()