diff --git a/crates/rspack_core/src/concatenated_module.rs b/crates/rspack_core/src/concatenated_module.rs index a10eb4f706c5..8a1eb689f762 100644 --- a/crates/rspack_core/src/concatenated_module.rs +++ b/crates/rspack_core/src/concatenated_module.rs @@ -731,11 +731,12 @@ impl Module for ConcatenatedModule { let module_graph = compilation.get_module_graph(); let mut import_stmts = IndexMap::<(String, Option), ImportSpec>::default(); - let (escaped_names, escaped_identifiers) = module_to_info_map + let (escaped_names, escaped_identifiers, conflict_names) = module_to_info_map .par_values() .map(|info| { let mut escaped_names: HashMap = HashMap::default(); let mut escaped_identifiers: HashMap> = HashMap::default(); + let mut conflict_names: HashMap = HashMap::default(); let readable_identifier = get_cached_readable_identifier( module_graph .module_by_identifier(&info.id()) @@ -750,6 +751,14 @@ impl Module for ConcatenatedModule { ModuleInfo::Concatenated(info) => { for (id, _) in info.binding_to_ref.iter() { escaped_names.insert(id.0.to_string(), escape_name(id.0.as_str())); + match conflict_names.entry(id.0.to_string()) { + Entry::Occupied(mut entry) => { + entry.insert(entry.get() + 1); + } + Entry::Vacant(entry) => { + entry.insert(1); + } + }; } if let Some(import_map) = &info.import_map { @@ -760,247 +769,318 @@ impl Module for ConcatenatedModule { ); for atom in imported_atoms { escaped_names.insert(atom.to_string(), escape_name(atom.as_str())); + match conflict_names.entry(atom.to_string()) { + Entry::Occupied(mut entry) => { + entry.insert(entry.get() + 1); + } + Entry::Vacant(entry) => { + entry.insert(1); + } + }; } } } } ModuleInfo::External(_) => (), } - (escaped_names, escaped_identifiers) + (escaped_names, escaped_identifiers, conflict_names) }) .reduce( - || (HashMap::default(), HashMap::default()), + || (HashMap::default(), HashMap::default(), HashMap::default()), |mut a, b| { a.0.extend(b.0); a.1.extend(b.1); + for (name, count) in b.2 { + match a.2.entry(name) { + Entry::Occupied(mut entry) => { + entry.insert(entry.get() + count); + } + Entry::Vacant(entry) => { + entry.insert(count); + } + }; + } a }, ); for info in module_to_info_map.values_mut() { - // Get used names in the scope - let module = module_graph .module_by_identifier(&info.id()) .expect("should have module identifier"); let readable_identifier = get_cached_readable_identifier(module, &compilation.module_static_cache_artifact, &context); - let exports_type: BuildMetaExportsType = module.build_meta().exports_type; - let default_object: BuildMetaDefaultObject = module.build_meta().default_object; - match info { - // Handle concatenated type - ModuleInfo::Concatenated(info) => { - // Iterate over variables in moduleScope - for (id, refs) in info.binding_to_ref.iter() { - let name = &id.0; - let ctxt = id.1; - if ctxt != info.module_ctxt { + if let ModuleInfo::Concatenated(info) = info + && let Some(import_map) = &info.import_map + { + // Iterate over imported symbols + for ((source, attr), imported_atoms) in import_map.iter() { + let entry = import_stmts.entry((source.clone(), attr.clone())); + let total_imported_atoms = entry.or_default(); + + for atom in imported_atoms { + // already import this symbol + if let Some(internal_atom) = total_imported_atoms.atoms.get(atom) { + info + .internal_names + .insert(atom.clone(), internal_atom.clone()); + // if the imported symbol is exported, we rename the export as well + if let Some(raw_export_map) = info.raw_export_map.as_mut() + && raw_export_map.contains_key(atom) + { + raw_export_map.insert(atom.clone(), internal_atom.to_string()); + } continue; } - // Check if the name is already used - if all_used_names.contains(name) { - // Find a new name and update references - let new_name = find_new_name( - escaped_names - .get(name.as_str()) - .expect("should have escaped name"), - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), - ); - all_used_names.insert(new_name.clone()); - info.internal_names.insert(name.clone(), new_name.clone()); - top_level_declarations.insert(new_name.clone()); - - // Update source - let source = info.source.as_mut().expect("should have source"); - - for identifier in refs { - let span = identifier.id.span(); - let low = span.real_lo(); - let high = span.real_hi(); - if identifier.shorthand { - source.insert(high, &format!(": {new_name}"), None); - continue; - } - source.replace(low, high, &new_name, None); + let new_name = if all_used_names.contains(atom) { + let new_name = if atom == "default" { + find_new_name( + "", + "", + &all_used_names, + escaped_identifiers + .get(source) + .expect("should have escaped identifier"), + ) + } else { + find_new_name( + "", + escaped_names + .get(atom.as_str()) + .expect("should have escaped name"), + &all_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + ) + }; + all_used_names.insert(new_name.clone()); + // if the imported symbol is exported, we rename the export as well + if let Some(raw_export_map) = info.raw_export_map.as_mut() + && raw_export_map.contains_key(atom) + { + raw_export_map.insert(atom.clone(), new_name.to_string()); } + new_name + } else { + all_used_names.insert(atom.clone()); + atom.clone() + }; + + info.internal_names.insert(atom.clone(), new_name.clone()); + + if atom == "default" { + total_imported_atoms.default_import = Some(new_name.clone()); } else { - // Handle the case when the name is not already used - all_used_names.insert(name.clone()); - info.internal_names.insert(name.clone(), name.clone()); - top_level_declarations.insert(name.clone()); + total_imported_atoms + .atoms + .insert(atom.clone(), new_name.clone()); } } + } + } + } - // Iterate over imported symbols - if let Some(import_map) = &info.import_map { - for ((source, attr), imported_atoms) in import_map.iter() { - let entry = import_stmts.entry((source.clone(), attr.clone())); - let total_imported_atoms = entry.or_default(); - - for atom in imported_atoms { - // already import this symbol - if let Some(internal_atom) = total_imported_atoms.atoms.get(atom) { - info - .internal_names - .insert(atom.clone(), internal_atom.clone()); - // if the imported symbol is exported, we rename the export as well - if let Some(raw_export_map) = info.raw_export_map.as_mut() - && raw_export_map.contains_key(atom) - { - raw_export_map.insert(atom.clone(), internal_atom.to_string()); - } + let (module_used_names, module_top_level_declarations, module_public_path_auto_replace) = + module_to_info_map + .par_values_mut() + .enumerate() + .map(|(module_index, info)| { + let mut module_used_names = HashSet::default(); + let mut module_top_level_declarations = HashSet::default(); + let mut module_public_path_auto_replace = false; + let module = module_graph + .module_by_identifier(&info.id()) + .expect("should have module identifier"); + let readable_identifier = get_cached_readable_identifier( + module, + &compilation.module_static_cache_artifact, + &context, + ); + let prefix = format!("_{module_index}_"); + let exports_type: BuildMetaExportsType = module.build_meta().exports_type; + let default_object: BuildMetaDefaultObject = module.build_meta().default_object; + match info { + // Handle concatenated type + ModuleInfo::Concatenated(info) => { + // Iterate over variables in moduleScope + for (id, refs) in info.binding_to_ref.iter() { + let name = &id.0; + let ctxt = id.1; + if ctxt != info.module_ctxt { continue; } - - let new_name = if all_used_names.contains(atom) { - let new_name = if atom == "default" { - find_new_name( - "", - &all_used_names, - escaped_identifiers - .get(source) - .expect("should have escaped identifier"), - ) - } else { - find_new_name( - escaped_names - .get(atom.as_str()) - .expect("should have escaped name"), - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), - ) - }; - all_used_names.insert(new_name.clone()); - // if the imported symbol is exported, we rename the export as well - if let Some(raw_export_map) = info.raw_export_map.as_mut() - && raw_export_map.contains_key(atom) - { - raw_export_map.insert(atom.clone(), new_name.to_string()); - } - new_name + // Check if the name is already used + + let new_name = if all_used_names.contains(name) || module_used_names.contains(name) + { + // Find a new name and update references + find_new_name( + &prefix, + escaped_names + .get(name.as_str()) + .expect("should have escaped name"), + &module_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + ) + } else if *conflict_names + .get(name.as_str()) + .expect("should have conflict name") + > 1 + { + Atom::from(format!("{prefix}{name}")) } else { - all_used_names.insert(atom.clone()); - atom.clone() + name.clone() }; - info.internal_names.insert(atom.clone(), new_name.clone()); + module_used_names.insert(new_name.clone()); + info.internal_names.insert(name.clone(), new_name.clone()); + module_top_level_declarations.insert(new_name.clone()); - if atom == "default" { - total_imported_atoms.default_import = Some(new_name.clone()); - } else { - total_imported_atoms - .atoms - .insert(atom.clone(), new_name.clone()); + if new_name != *name { + // Update source + let source = info.source.as_mut().expect("should have source"); + + for identifier in refs { + let span = identifier.id.span(); + let low = span.real_lo(); + let high = span.real_hi(); + if identifier.shorthand { + source.insert(high, &format!(": {new_name}"), None); + continue; + } + + source.replace(low, high, &new_name, None); + } } } - } - } - // Handle the name passed through by namespace_export_symbol - if let Some(ref namespace_export_symbol) = info.namespace_export_symbol { - if namespace_export_symbol.starts_with(NAMESPACE_OBJECT_EXPORT) - && namespace_export_symbol.len() > NAMESPACE_OBJECT_EXPORT.len() - { - let name = - Atom::from(namespace_export_symbol[NAMESPACE_OBJECT_EXPORT.len()..].to_string()); - all_used_names.insert(name.clone()); - info - .internal_names - .insert(namespace_export_symbol.clone(), name.clone()); - top_level_declarations.insert(name.clone()); + // Handle the name passed through by namespace_export_symbol + if let Some(ref namespace_export_symbol) = info.namespace_export_symbol { + if namespace_export_symbol.starts_with(NAMESPACE_OBJECT_EXPORT) + && namespace_export_symbol.len() > NAMESPACE_OBJECT_EXPORT.len() + { + let name = Atom::from( + namespace_export_symbol[NAMESPACE_OBJECT_EXPORT.len()..].to_string(), + ); + module_used_names.insert(name.clone()); + info + .internal_names + .insert(namespace_export_symbol.clone(), name.clone()); + module_top_level_declarations.insert(name.clone()); + } + } + + // Handle namespaceObjectName for concatenated type + let namespace_object_name = + if let Some(ref namespace_export_symbol) = info.namespace_export_symbol { + info.internal_names.get(namespace_export_symbol).cloned() + } else { + Some(find_new_name( + &prefix, + "namespaceObject", + &module_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + )) + }; + if let Some(namespace_object_name) = namespace_object_name { + module_used_names.insert(namespace_object_name.clone()); + info.namespace_object_name = Some(namespace_object_name.clone()); + module_top_level_declarations.insert(namespace_object_name); + } + + // Handle publicPathAutoReplace for perf + if let Some(info_auto) = info.public_path_auto_replace { + module_public_path_auto_replace = module_public_path_auto_replace || info_auto; + } } - } - // Handle namespaceObjectName for concatenated type - let namespace_object_name = - if let Some(ref namespace_export_symbol) = info.namespace_export_symbol { - info.internal_names.get(namespace_export_symbol).cloned() - } else { - Some(find_new_name( - "namespaceObject", - &all_used_names, + // Handle external type + ModuleInfo::External(info) => { + let external_name: Atom = find_new_name( + &prefix, + "", + &module_used_names, escaped_identifiers .get(&readable_identifier) .expect("should have escaped identifier"), - )) - }; - if let Some(namespace_object_name) = namespace_object_name { - all_used_names.insert(namespace_object_name.clone()); - info.namespace_object_name = Some(namespace_object_name.clone()); - top_level_declarations.insert(namespace_object_name); + ); + module_used_names.insert(external_name.clone()); + info.name = Some(external_name.clone()); + module_top_level_declarations.insert(external_name.clone()); + } } - - // Handle publicPathAutoReplace for perf - if let Some(info_auto) = info.public_path_auto_replace { - public_path_auto_replace = public_path_auto_replace || info_auto; + // Handle additional logic based on module build meta + if exports_type != BuildMetaExportsType::Namespace { + let external_name_interop: Atom = find_new_name( + &prefix, + "namespaceObject", + &module_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + ); + module_used_names.insert(external_name_interop.clone()); + info.set_interop_namespace_object_name(Some(external_name_interop.clone())); + module_top_level_declarations.insert(external_name_interop.clone()); } - } - // Handle external type - ModuleInfo::External(info) => { - let external_name: Atom = find_new_name( - "", - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), - ); - all_used_names.insert(external_name.clone()); - info.name = Some(external_name.clone()); - top_level_declarations.insert(external_name.clone()); - } - } - // Handle additional logic based on module build meta - if exports_type != BuildMetaExportsType::Namespace { - let external_name_interop: Atom = find_new_name( - "namespaceObject", - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), - ); - all_used_names.insert(external_name_interop.clone()); - info.set_interop_namespace_object_name(Some(external_name_interop.clone())); - top_level_declarations.insert(external_name_interop.clone()); - } + if exports_type == BuildMetaExportsType::Default + && !matches!(default_object, BuildMetaDefaultObject::Redirect) + { + let external_name_interop: Atom = find_new_name( + &prefix, + "namespaceObject2", + &module_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + ); + module_used_names.insert(external_name_interop.clone()); + info.set_interop_namespace_object2_name(Some(external_name_interop.clone())); + module_top_level_declarations.insert(external_name_interop.clone()); + } - if exports_type == BuildMetaExportsType::Default - && !matches!(default_object, BuildMetaDefaultObject::Redirect) - { - let external_name_interop: Atom = find_new_name( - "namespaceObject2", - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), + if matches!( + exports_type, + BuildMetaExportsType::Dynamic | BuildMetaExportsType::Unset + ) { + let external_name_interop: Atom = find_new_name( + &prefix, + "default", + &module_used_names, + escaped_identifiers + .get(&readable_identifier) + .expect("should have escaped identifier"), + ); + module_used_names.insert(external_name_interop.clone()); + info.set_interop_default_access_name(Some(external_name_interop.clone())); + module_top_level_declarations.insert(external_name_interop.clone()); + } + ( + module_used_names, + module_top_level_declarations, + module_public_path_auto_replace, + ) + }) + .reduce( + || (HashSet::default(), HashSet::default(), false), + |mut a, b| { + a.0.extend(b.0); + a.1.extend(b.1); + a.2 = a.2 || b.2; + a + }, ); - all_used_names.insert(external_name_interop.clone()); - info.set_interop_namespace_object2_name(Some(external_name_interop.clone())); - top_level_declarations.insert(external_name_interop.clone()); - } - if matches!( - exports_type, - BuildMetaExportsType::Dynamic | BuildMetaExportsType::Unset - ) { - let external_name_interop: Atom = find_new_name( - "default", - &all_used_names, - escaped_identifiers - .get(&readable_identifier) - .expect("should have escaped identifier"), - ); - all_used_names.insert(external_name_interop.clone()); - info.set_interop_default_access_name(Some(external_name_interop.clone())); - top_level_declarations.insert(external_name_interop.clone()); - } - } + all_used_names.extend(module_used_names); + top_level_declarations.extend(module_top_level_declarations); + public_path_auto_replace |= module_public_path_auto_replace; // Find and replace references to modules // Splitting read and write to avoid violating rustc borrow rules @@ -2641,7 +2721,12 @@ pub fn map_box_diagnostics_to_module_parse_diagnostics( .collect() } -pub fn find_new_name(old_name: &str, used_names: &HashSet, extra_info: &Vec) -> Atom { +pub fn find_new_name( + prefix: &str, + old_name: &str, + used_names: &HashSet, + extra_info: &Vec, +) -> Atom { let mut name = old_name.to_string(); for info_part in extra_info { @@ -2656,14 +2741,18 @@ pub fn find_new_name(old_name: &str, used_names: &HashSet, extra_info: &Ve format!("_{name}") } ); - let name_ident = Atom::from(to_identifier_with_escaped(name.clone())); + let name_ident = Atom::from(format!( + "{prefix}{}", + to_identifier_with_escaped(name.clone()) + )); if !used_names.contains(&name_ident) { return name_ident; } } let mut i = 0; - let name_with_number_ident = to_identifier_with_escaped(format!("{name}_")); + let name_with_number_ident = + format!("{prefix}{}", to_identifier_with_escaped(format!("{name}_"))); let mut name_with_number = format!("{}{}", name_with_number_ident, itoa!(i)).into(); while used_names.contains(&name_with_number) { i += 1; diff --git a/crates/rspack_plugin_javascript/src/plugin/mod.rs b/crates/rspack_plugin_javascript/src/plugin/mod.rs index 69fea4b33795..95db492b8965 100644 --- a/crates/rspack_plugin_javascript/src/plugin/mod.rs +++ b/crates/rspack_plugin_javascript/src/plugin/mod.rs @@ -1116,7 +1116,7 @@ impl JsPlugin { let context = compilation.options.context.clone(); let readable_identifier = module.readable_identifier(&context).to_string(); let splitted_readable_identifier = split_readable_identifier(&readable_identifier); - let new_name = find_new_name(name, &all_used_names, &splitted_readable_identifier); + let new_name = find_new_name("", name, &all_used_names, &splitted_readable_identifier); for identifier in refs.iter() { let span = identifier.id.span(); diff --git a/packages/rspack-test-tools/tests/__snapshots__/StatsAPI.test.js.snap b/packages/rspack-test-tools/tests/__snapshots__/StatsAPI.test.js.snap index 3f83bbebd8a2..8e1f2cbcee8f 100644 --- a/packages/rspack-test-tools/tests/__snapshots__/StatsAPI.test.js.snap +++ b/packages/rspack-test-tools/tests/__snapshots__/StatsAPI.test.js.snap @@ -330,7 +330,7 @@ Object { main.js, ], filteredModules: undefined, - hash: cfe10b32fa6df1ab, + hash: f2679505795e0dc5, id: 909, idHints: Array [], initial: true, @@ -718,7 +718,7 @@ Object { errorsCount: 0, filteredAssets: undefined, filteredModules: undefined, - hash: de56093745c27934, + hash: 2252b7b6fa0bc796, modules: Array [ Object { assets: Array [], diff --git a/packages/rspack-test-tools/tests/__snapshots__/StatsOutput.test.js.snap b/packages/rspack-test-tools/tests/__snapshots__/StatsOutput.test.js.snap index 37d82b03afdd..f44bbb604336 100644 --- a/packages/rspack-test-tools/tests/__snapshots__/StatsOutput.test.js.snap +++ b/packages/rspack-test-tools/tests/__snapshots__/StatsOutput.test.js.snap @@ -58,7 +58,7 @@ runtime modules xx KiB [no exports] [used exports unknown] -Rspack compiled successfully (cb468c46ad9d7f18) +Rspack compiled successfully (b6a6c74437c67e0f) `; exports[`statsOutput statsOutput/builtin-swc-loader-parse-error should print correct stats for 1`] = ` diff --git a/packages/rspack-test-tools/tests/builtinCases/samples/concatenate-modules/__snapshots__/output.snap.txt b/packages/rspack-test-tools/tests/builtinCases/samples/concatenate-modules/__snapshots__/output.snap.txt index b3b651201e8a..7c3de9c647e6 100644 --- a/packages/rspack-test-tools/tests/builtinCases/samples/concatenate-modules/__snapshots__/output.snap.txt +++ b/packages/rspack-test-tools/tests/builtinCases/samples/concatenate-modules/__snapshots__/output.snap.txt @@ -4,15 +4,15 @@ "./index.js": (function () { ;// CONCATENATED MODULE: ./answer.js -const answer = 103330; +const _0_answer = 103330; ;// CONCATENATED MODULE: ./index.js -answer; +_0_answer; -function index_answer() {} +function _1_answer() {} -index_answer(); +_1_answer(); function test() {} diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-asset-entry/rspack.config.js b/packages/rspack-test-tools/tests/configCases/library/modern-module-asset-entry/rspack.config.js index 8cf4737d2d82..54535e7ddb95 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-asset-entry/rspack.config.js +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-asset-entry/rspack.config.js @@ -47,12 +47,14 @@ module.exports = { const jsContent = assets[js].source().toString(); const preseveImport = - /import\simg_namespaceObject\sfrom ['"]\.\/static\/img\/img\.png['"]/.test( + /import\s_0_img_namespaceObject\sfrom ['"]\.\/static\/img\/img\.png['"]/.test( jsContent ); assert(preseveImport); const hasExports = - /export\s{\simg_namespaceObject\sas\sdefault\s}/.test(jsContent); + /export\s{\s_0_img_namespaceObject\sas\sdefault\s}/.test( + jsContent + ); assert(hasExports); }); }); diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-export-char/rspack.config.js b/packages/rspack-test-tools/tests/configCases/library/modern-module-export-char/rspack.config.js index c8b2663ad54d..2115250f4da9 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-export-char/rspack.config.js +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-export-char/rspack.config.js @@ -30,7 +30,7 @@ module.exports = { compilation.hooks.afterProcessAssets.tap("testcase", assets => { const bundle = Object.values(assets)[0]._value; expect(bundle) - .toContain(`var __webpack_exports__cjsInterop = (foo_default()); + .toContain(`var __webpack_exports__cjsInterop = (_1_foo_default()); export { external_module as defaultImport, namedImport, __webpack_exports__cjsInterop as cjsInterop };`); expect(bundle).toContain( 'import external_module, { namedImport } from "external-module";' diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/e.js.txt b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/e.js.txt index 60e1f7437a9d..2b9730438e0b 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/e.js.txt +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/e.js.txt @@ -62,13 +62,13 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj const foo = 'foo' // EXTERNAL MODULE: ./e/bar.cjs -var bar = __webpack_require__(997); -var bar_default = /*#__PURE__*/__webpack_require__.n(bar); +var _1_bar = __webpack_require__(997); +var _1_bar_default = /*#__PURE__*/__webpack_require__.n(_1_bar); ;// CONCATENATED MODULE: ./e/index.js -var __webpack_exports__bar = (bar_default()); +var __webpack_exports__bar = (_1_bar_default()); export { foo, __webpack_exports__bar as bar }; \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/f.js.txt b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/f.js.txt index cd3c6fc5f78e..2893bcd9576c 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/f.js.txt +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/f.js.txt @@ -67,8 +67,8 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj /************************************************************************/ // EXTERNAL MODULE: ./f/bar.cjs -var bar = __webpack_require__(441); -var bar_default = /*#__PURE__*/__webpack_require__.n(bar); +var _0_bar = __webpack_require__(441); +var _0_bar_default = /*#__PURE__*/__webpack_require__.n(_0_bar); ;// CONCATENATED MODULE: ./f/foo.js const foo = 'foo' @@ -76,7 +76,7 @@ const foo = 'foo' -const value = foo + (bar_default()) +const value = foo + (_0_bar_default()) diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/g.js.txt b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/g.js.txt index f51638e1305e..5a8494348f90 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/g.js.txt +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/g.js.txt @@ -60,12 +60,12 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj /************************************************************************/ // EXTERNAL MODULE: ./g/foo.js -var foo = __webpack_require__(974); -var foo_default = /*#__PURE__*/__webpack_require__.n(foo); +var _0_foo = __webpack_require__(974); +var _0_foo_default = /*#__PURE__*/__webpack_require__.n(_0_foo); ;// CONCATENATED MODULE: ./g/index.js -var __webpack_exports__foo = (foo_default()); +var __webpack_exports__foo = (_0_foo_default()); export { __webpack_exports__foo as foo }; \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/h.js.txt b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/h.js.txt index 497614a5b0af..0cd1e20e6035 100644 --- a/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/h.js.txt +++ b/packages/rspack-test-tools/tests/configCases/library/modern-module-force-concaten/__snapshot__/h.js.txt @@ -29,5 +29,5 @@ __webpack_require__.p = ""; /************************************************************************/ ;// CONCATENATED MODULE: ./h/file.png -const file_namespaceObject = __webpack_require__.p + "fc90103f80b6abc6.png"; -export { file_namespaceObject as default }; \ No newline at end of file +const _0_file_namespaceObject = __webpack_require__.p + "fc90103f80b6abc6.png"; +export { _0_file_namespaceObject as default }; \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/rstest/module-path-names/index.js b/packages/rspack-test-tools/tests/configCases/rstest/module-path-names/index.js index a9420173c8e1..b6de720bd0a4 100644 --- a/packages/rspack-test-tools/tests/configCases/rstest/module-path-names/index.js +++ b/packages/rspack-test-tools/tests/configCases/rstest/module-path-names/index.js @@ -6,8 +6,8 @@ const sourceDir = path.resolve(__dirname, "../../../../configCases/rstest/module it("Insert module path names with concatenateModules", () => { const content = fs.readFileSync(path.resolve(__dirname, "modulePathName.js"), "utf-8"); // __dirname and __filename renamed after concatenation - expect(content).toContain(`const foo_filename = ${JSON.stringify(path.resolve(sourceDir, "./foo.js"))}`); - expect(content).toContain(`const foo_dirname = ${JSON.stringify(path.resolve(sourceDir, "."))}`); + expect(content).toContain(`const _0_foo_filename = ${JSON.stringify(path.resolve(sourceDir, "./foo.js"))}`); + expect(content).toContain(`const _0_foo_dirname = ${JSON.stringify(path.resolve(sourceDir, "."))}`); expect(content).toContain(`const metaFile1 = ${JSON.stringify(path.resolve(sourceDir, "./foo.js"))}`) expect(content).toContain(`const metaDir1 = ${JSON.stringify(path.resolve(sourceDir, "."))}`) diff --git a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/request/output.snap.txt b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/request/output.snap.txt index 900fbfcd92f7..63b728b3dd64 100644 --- a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/request/output.snap.txt +++ b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/request/output.snap.txt @@ -70,24 +70,24 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj "use strict"; // EXTERNAL MODULE: ../../normalModuleFactory​#afterResolve/request/a.js -var a = __webpack_require__("../../normalModuleFactory​#afterResolve/request/a.js"); -var a_default = /*#__PURE__*/__webpack_require__.n(a); +var _0_a = __webpack_require__("../../normalModuleFactory​#afterResolve/request/a.js"); +var _0_a_default = /*#__PURE__*/__webpack_require__.n(_0_a); // EXTERNAL MODULE: ../../normalModuleFactory​#afterResolve/request/c.js -var c = __webpack_require__("../../normalModuleFactory​#afterResolve/request/c.js"); -var c_default = /*#__PURE__*/__webpack_require__.n(c); +var _1_c = __webpack_require__("../../normalModuleFactory​#afterResolve/request/c.js"); +var _1_c_default = /*#__PURE__*/__webpack_require__.n(_1_c); ;// CONCATENATED MODULE: external "fs" -const external_fs_namespaceObject = require("fs"); -var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_namespaceObject); +const _2_external_fs_namespaceObject = require("fs"); +var _2_external_fs_default = /*#__PURE__*/__webpack_require__.n(_2_external_fs_namespaceObject); ;// CONCATENATED MODULE: ../../normalModuleFactory​#afterResolve/request/request.js it("should modify request by after resolve hook", () => { - expect((a_default())).toBe("a"); - expect((c_default())).toBe("b"); + expect((_0_a_default())).toBe("a"); + expect((_1_c_default())).toBe("b"); const ext = ".js"; - expect(external_fs_default().readFileSync(__filename, "utf-8")).toContain("request/c" + ext); + expect(_2_external_fs_default().readFileSync(__filename, "utf-8")).toContain("request/c" + ext); }); })(); diff --git a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/resource/output.snap.txt b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/resource/output.snap.txt index 439e0e5251a4..9799f0c33c0e 100644 --- a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/resource/output.snap.txt +++ b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#afterResolve/resource/output.snap.txt @@ -70,24 +70,24 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj "use strict"; // EXTERNAL MODULE: ../../normalModuleFactory​#afterResolve/resource/a.js -var a = __webpack_require__("../../normalModuleFactory​#afterResolve/resource/a.js"); -var a_default = /*#__PURE__*/__webpack_require__.n(a); +var _0_a = __webpack_require__("../../normalModuleFactory​#afterResolve/resource/a.js"); +var _0_a_default = /*#__PURE__*/__webpack_require__.n(_0_a); // EXTERNAL MODULE: ../../normalModuleFactory​#afterResolve/resource/b.js -var b = __webpack_require__("../../normalModuleFactory​#afterResolve/resource/b.js"); -var b_default = /*#__PURE__*/__webpack_require__.n(b); +var _1_b = __webpack_require__("../../normalModuleFactory​#afterResolve/resource/b.js"); +var _1_b_default = /*#__PURE__*/__webpack_require__.n(_1_b); ;// CONCATENATED MODULE: external "fs" -const external_fs_namespaceObject = require("fs"); -var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_namespaceObject); +const _2_external_fs_namespaceObject = require("fs"); +var _2_external_fs_default = /*#__PURE__*/__webpack_require__.n(_2_external_fs_namespaceObject); ;// CONCATENATED MODULE: ../../normalModuleFactory​#afterResolve/resource/resource.js it("should modify resource by after resolve hook", () => { - expect((a_default())).toBe("a"); - expect((b_default())).toBe("c"); + expect((_0_a_default())).toBe("a"); + expect((_1_b_default())).toBe("c"); const ext = ".js"; - expect(external_fs_default().readFileSync(__filename, "utf-8")).toContain("resource/b" + ext); + expect(_2_external_fs_default().readFileSync(__filename, "utf-8")).toContain("resource/b" + ext); }); })(); diff --git a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#resolve/resource/output.snap.txt b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#resolve/resource/output.snap.txt index 170694ac39bf..e821f6b464fb 100644 --- a/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#resolve/resource/output.snap.txt +++ b/packages/rspack-test-tools/tests/hookCases/normalModuleFactory#resolve/resource/output.snap.txt @@ -70,24 +70,24 @@ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj "use strict"; // EXTERNAL MODULE: ../../normalModuleFactory​#resolve/resource/a.js -var a = __webpack_require__("../../normalModuleFactory​#resolve/resource/a.js"); -var a_default = /*#__PURE__*/__webpack_require__.n(a); +var _0_a = __webpack_require__("../../normalModuleFactory​#resolve/resource/a.js"); +var _0_a_default = /*#__PURE__*/__webpack_require__.n(_0_a); // EXTERNAL MODULE: ../../normalModuleFactory​#resolve/resource/b.js -var b = __webpack_require__("../../normalModuleFactory​#resolve/resource/b.js"); -var b_default = /*#__PURE__*/__webpack_require__.n(b); +var _1_b = __webpack_require__("../../normalModuleFactory​#resolve/resource/b.js"); +var _1_b_default = /*#__PURE__*/__webpack_require__.n(_1_b); ;// CONCATENATED MODULE: external "fs" -const external_fs_namespaceObject = require("fs"); -var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_namespaceObject); +const _2_external_fs_namespaceObject = require("fs"); +var _2_external_fs_default = /*#__PURE__*/__webpack_require__.n(_2_external_fs_namespaceObject); ;// CONCATENATED MODULE: ../../normalModuleFactory​#resolve/resource/resource.js it("should modify resource by resolve hook", () => { - expect((a_default())).toBe("a"); - expect((b_default())).toBe("c"); + expect((_0_a_default())).toBe("a"); + expect((_1_b_default())).toBe("c"); const ext = ".js"; - expect(external_fs_default().readFileSync(__filename, "utf-8")).toContain("resource/b" + ext); + expect(_2_external_fs_default().readFileSync(__filename, "utf-8")).toContain("resource/b" + ext); }); })();