From cac8e731750095c453f03cb5dc862350fcb7acd9 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Wed, 11 Feb 2026 14:14:43 +0800 Subject: [PATCH] chore: add foreign jsx transform test case --- crates/pack-core/src/client/context.rs | 17 +++++++---------- .../basic/foreign_jsx_transform/config.json | 10 ++++++++++ .../basic/foreign_jsx_transform/input/index.js | 1 + .../Ecmascript-file-had-an-error-df4108.txt | 13 +++++++++++++ .../foreign-jsx-transform/index.js | 3 +++ .../foreign-jsx-transform/package.json | 5 +++++ ...ct__basic_foreign_jsx_transform_9ec7bd5f.js | 18 ++++++++++++++++++ ...basic_foreign_jsx_transform_9ec7bd5f.js.map | 7 +++++++ .../basic/foreign_jsx_transform/output/main.js | 5 +++++ .../foreign_jsx_transform/output/main.js.map | 5 +++++ 10 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/config.json create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/input/index.js create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/issues/Ecmascript-file-had-an-error-df4108.txt create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/package.json create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js.map create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js create mode 100644 crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js.map diff --git a/crates/pack-core/src/client/context.rs b/crates/pack-core/src/client/context.rs index 94ab164094..102d4cc2fd 100644 --- a/crates/pack-core/src/client/context.rs +++ b/crates/pack-core/src/client/context.rs @@ -368,14 +368,15 @@ pub async fn get_client_module_options_context( let enable_foreign_postcss_transform = postcss_foreign_transform_options .map(|postcss_foreign_transform_options| postcss_foreign_transform_options.resolved_cell()); + let source_maps = if *config.source_maps().await? { + SourceMapsType::Full + } else { + SourceMapsType::None + }; let module_options_context = ModuleOptionsContext { ecmascript: EcmascriptOptionsContext { enable_typeof_window_inlining: Some(TypeofWindow::Object), - source_maps: if *config.source_maps().await? { - SourceMapsType::Full - } else { - SourceMapsType::None - }, + source_maps, import_externals: *config.import_externals().await?, enable_typescript_transform: Some( TypescriptTransformOptions::default().resolved_cell(), @@ -385,11 +386,7 @@ pub async fn get_client_module_options_context( ..Default::default() }, css: CssOptionsContext { - source_maps: if *config.source_maps().await? { - SourceMapsType::Full - } else { - SourceMapsType::None - }, + source_maps, module_css_condition: Some(module_styles_rule_condition()), ..Default::default() }, diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/config.json b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/config.json new file mode 100644 index 0000000000..675f949692 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/config.json @@ -0,0 +1,10 @@ +{ + "config": { + "entry": [ + { + "import": "input/index.js", + "name": "main" + } + ] + } +} \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/input/index.js b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/input/index.js new file mode 100644 index 0000000000..8219bf8161 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/input/index.js @@ -0,0 +1 @@ +import 'foreign-jsx-transform'; \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/issues/Ecmascript-file-had-an-error-df4108.txt b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/issues/Ecmascript-file-had-an-error-df4108.txt new file mode 100644 index 0000000000..91234d3ca6 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/issues/Ecmascript-file-had-an-error-df4108.txt @@ -0,0 +1,13 @@ +error - [analysis] /basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js:1:0 Ecmascript file had an error + + v-------------v + 1 + /** @jsx jsx */ + + ^-------------^ + 2 | var a = 1; + 3 | export default a; + + pragma cannot be set when runtime is automatic + + Import trace: + Browser: + ./basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js + ./basic/foreign_jsx_transform/input/index.js \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js new file mode 100644 index 0000000000..31446c27b8 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js @@ -0,0 +1,3 @@ +/** @jsx jsx */ +var a = 1; +export default a; \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/package.json b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/package.json new file mode 100644 index 0000000000..38ecc6bb0b --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/package.json @@ -0,0 +1,5 @@ +{ + "name": "foreign-jsx-transform", + "version": "1.0.0", + "main": "index.js" +} \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js new file mode 100644 index 0000000000..996df96dea --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js @@ -0,0 +1,18 @@ +(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([typeof document === "object" ? document.currentScript : undefined, +86, ((__turbopack_context__) => { +"use strict"; + +/** @jsx jsx */ var a = 1; +var __TURBOPACK__default__export__ = a; +__turbopack_context__.s([]); +}), +46, ((__turbopack_context__) => { +"use strict"; + +var __TURBOPACK__imported__module__86__ = __turbopack_context__.i(86); +; +__turbopack_context__.s([]); +}), +]); + +//# sourceMappingURL=_project__basic_foreign_jsx_transform_9ec7bd5f.js.map \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js.map b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js.map new file mode 100644 index 0000000000..8b905c0467 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/_project__basic_foreign_jsx_transform_9ec7bd5f.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "sections": [ + {"offset": {"line": 4, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/basic/foreign_jsx_transform/node_modules/foreign-jsx-transform/index.js"],"sourcesContent":["/** @jsx jsx */\nvar a = 1;\nexport default a;"],"names":["a"],"mappings":"AAAA,aAAa,GACb,IAAIA,IAAI;qCACOA","ignoreList":[0]}}, + {"offset": {"line": 11, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/basic/foreign_jsx_transform/input/index.js"],"sourcesContent":["import 'foreign-jsx-transform';"],"names":[],"mappings":"AAAA"}}] +} \ No newline at end of file diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js new file mode 100644 index 0000000000..1c75db9027 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js @@ -0,0 +1,5 @@ +(globalThis["TURBOPACK"] || (globalThis["TURBOPACK"] = [])).push([ + typeof document === "object" ? document.currentScript : undefined, + {"otherChunks":["_project__basic_foreign_jsx_transform_9ec7bd5f.js"],"runtimeModuleIds":[46]} +]); +// Dummy runtime diff --git a/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js.map b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js.map new file mode 100644 index 0000000000..c15d7ec003 --- /dev/null +++ b/crates/pack-tests/tests/snapshot/basic/foreign_jsx_transform/output/main.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file