From 26570dc8995d14f2149c5de400301d47e2244a38 Mon Sep 17 00:00:00 2001 From: Shinobu Hayashi Date: Tue, 28 Dec 2021 13:45:45 +0900 Subject: [PATCH] Fix: more loosened React lib version check (#7484) --- .../test/integration/jsx-preact-with-url/index.js | 1 + .../test/integration/jsx-preact-with-url/package.json | 6 ++++++ packages/core/integration-tests/test/transpilation.js | 9 +++++++++ packages/transformers/js/src/JSTransformer.js | 5 ++++- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 packages/core/integration-tests/test/integration/jsx-preact-with-url/index.js create mode 100644 packages/core/integration-tests/test/integration/jsx-preact-with-url/package.json diff --git a/packages/core/integration-tests/test/integration/jsx-preact-with-url/index.js b/packages/core/integration-tests/test/integration/jsx-preact-with-url/index.js new file mode 100644 index 00000000000..8d097d55d7f --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-preact-with-url/index.js @@ -0,0 +1 @@ +module.exports =
; diff --git a/packages/core/integration-tests/test/integration/jsx-preact-with-url/package.json b/packages/core/integration-tests/test/integration/jsx-preact-with-url/package.json new file mode 100644 index 00000000000..1437b13ea11 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-preact-with-url/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "preact": "https://pkg.csb.dev/preactjs/preact/commit/96082866/preact" + } +} diff --git a/packages/core/integration-tests/test/transpilation.js b/packages/core/integration-tests/test/transpilation.js index 6a5c9d0cc4b..4ef3e634031 100644 --- a/packages/core/integration-tests/test/transpilation.js +++ b/packages/core/integration-tests/test/transpilation.js @@ -130,6 +130,15 @@ describe('transpilation', function () { assert(file.includes('h("div"')); }); + it('should support compiling JSX in JS files with Preact url dependency', async function () { + await bundle( + path.join(__dirname, '/integration/jsx-preact-with-url/index.js'), + ); + + let file = await outputFS.readFile(path.join(distDir, 'index.js'), 'utf8'); + assert(file.includes('h("div"')); + }); + it('should support compiling JSX in TS files with Preact dependency', async function () { let b = await bundle( path.join(__dirname, '/integration/jsx-preact-ts/index.tsx'), diff --git a/packages/transformers/js/src/JSTransformer.js b/packages/transformers/js/src/JSTransformer.js index 60558f7ce10..fabbbd01f3d 100644 --- a/packages/transformers/js/src/JSTransformer.js +++ b/packages/transformers/js/src/JSTransformer.js @@ -209,8 +209,11 @@ export default (new Transformer({ pkg?.dependencies?.[effectiveReactLib] || pkg?.devDependencies?.[effectiveReactLib] || pkg?.peerDependencies?.[effectiveReactLib]; + reactLibVersion = reactLibVersion + ? semver.validRange(reactLibVersion) + : null; let minReactLibVersion = - reactLibVersion != null && reactLibVersion !== '*' + reactLibVersion !== null && reactLibVersion !== '*' ? semver.minVersion(reactLibVersion)?.toString() : null;