Skip to content

Commit ba0e466

Browse files
committed
Also check react version before setting jsx value in tsconfig
1 parent dccc7fc commit ba0e466

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,19 @@ const semver = require('semver');
1818
const immer = require('react-dev-utils/immer').produce;
1919
const globby = require('react-dev-utils/globby').sync;
2020

21+
const hasJsxRuntime = (() => {
22+
if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') {
23+
return false;
24+
}
25+
26+
try {
27+
require.resolve('react/jsx-runtime', { paths: [paths.appPath] });
28+
return true;
29+
} catch (e) {
30+
return false;
31+
}
32+
})();
33+
2134
function writeJson(fileName, object) {
2235
fs.writeFileSync(
2336
fileName,
@@ -134,8 +147,11 @@ function verifyTypeScriptSetup() {
134147
noEmit: { value: true },
135148
jsx: {
136149
parsedValue: ts.JsxEmit.React,
137-
value: semver.gte(ts.version, '4.1.0-beta') ? 'react-jsx' : 'react',
138-
reason: 'to support the new JSX transform in React 17'
150+
value:
151+
hasJsxRuntime && semver.gte(ts.version, '4.1.0-beta')
152+
? 'react-jsx'
153+
: 'react',
154+
reason: 'to support the new JSX transform in React 17',
139155
},
140156
paths: { value: undefined, reason: 'aliased imports are not supported' },
141157
};

0 commit comments

Comments
 (0)