Skip to content

Commit de5769f

Browse files
committed
fix: 配布物ビルドでdevelopment用jsx-dev-runtimeが混入するのを防ぐ
@babel/preset-reactのdevelopmentオプション未指定時はBABEL_ENV/NODE_ENVで 自動判定されるため、実行環境によってlib/にjsxDEV呼び出しが紛れ込んでいた。 React 19の本番ビルドはjsxDEVを未定義にするため、consumer側を本番モードで ビルドするとTypeErrorでクラッシュしていた。
1 parent 290098b commit de5769f

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

‎babel.config.mjs‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ export default {
77
modules: 'commonjs', // package.jsonがCommonJS想定(mainフィールド)のため明示
88
},
99
],
10-
['@babel/preset-react', { runtime: 'automatic' }], // React 17+の新しいJSX変換を有効化
10+
[
11+
'@babel/preset-react',
12+
// development: 未指定だとBABEL_ENV/NODE_ENVの実行時環境変数で自動判定されるため、
13+
// 実行環境によってlib/にjsx-dev-runtime(jsxDEV)呼び出しが紛れ込むことがある。
14+
// React 19の本番ビルドはjsxDEVを未定義にするため、配布物のlib/は常に本番用のjsx-runtimeを使う。
15+
{ runtime: 'automatic', development: false },
16+
], // React 17+の新しいJSX変換を有効化
1117
'@babel/preset-typescript',
1218
],
1319
plugins: ['@babel/plugin-transform-runtime'],

0 commit comments

Comments
 (0)