From 6230226a8d0d872cbfa42a2bbd62970d09d34ae5 Mon Sep 17 00:00:00 2001 From: otakustay Date: Thu, 20 Jan 2022 15:19:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor(play):=20=E8=AE=A9play=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=9C=A8ESM=E4=B8=8B=E7=BC=96=E8=AF=91=20(#39)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli-play/src/webpack.ts | 9 +++++++++ packages/cli-play/tsconfig.build.json | 2 -- packages/cli-play/tsconfig.json | 5 ++++- packages/config-babel/src/index.ts | 2 -- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/cli-play/src/webpack.ts b/packages/cli-play/src/webpack.ts index bea52af0..f607059d 100644 --- a/packages/cli-play/src/webpack.ts +++ b/packages/cli-play/src/webpack.ts @@ -49,6 +49,15 @@ export const createWebpackConfig = async (target: string, cmd: PlayCommandLineAr ...(baseConfig.module?.rules ?? []), ], }, + resolve: { + ...baseConfig.resolve, + fallback: { + ...baseConfig.resolve?.fallback, + // React要从`17.0.3`开始才会有`exports`配置,这之前的版本在ESM下是必须加`.js`后续的。 + // 利用这个`resolve.fallback`,可以在找不到`react/jsx-runtime`时跳到`react/jsx-runtime.js`上去,兼容旧版本。 + 'react/jsx-runtime': 'react/jsx-runtime.js', + }, + }, }; return config; }; diff --git a/packages/cli-play/tsconfig.build.json b/packages/cli-play/tsconfig.build.json index 03fd08fb..8b7f2b7b 100644 --- a/packages/cli-play/tsconfig.build.json +++ b/packages/cli-play/tsconfig.build.json @@ -3,8 +3,6 @@ "compilerOptions": { "rootDir": "src", "outDir": "dist", - // TODO: 这里要改回`react-jsx` - "jsx": "preserve" }, "include": ["src"], "exclude": ["**/__tests__"] diff --git a/packages/cli-play/tsconfig.json b/packages/cli-play/tsconfig.json index 2ba7beab..1cac9c53 100644 --- a/packages/cli-play/tsconfig.json +++ b/packages/cli-play/tsconfig.json @@ -1,7 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "jsx": "preserve" + "jsx": "react-jsx", + "paths": { + "react/jsx-runtime": ["node_modules/@types/react/jsx-runtime.d.ts"] + } }, "exclude": ["dist"] } diff --git a/packages/config-babel/src/index.ts b/packages/config-babel/src/index.ts index d46c6640..f8feed59 100644 --- a/packages/config-babel/src/index.ts +++ b/packages/config-babel/src/index.ts @@ -10,8 +10,6 @@ import getParseOnlyBabelConfigFilled from './parseOnly.js'; import getTransformBabelConfigFilled from './transform.js'; import {BabelConfigOptions, BabelConfigOptionsFilled} from './interface.js'; -// TODO: 看看能不能为jest和eslint定制一个完全不依赖自己的babel plugin的配置出来 - export type {BabelConfigOptions}; export const getParseOnlyBabelConfig = (options?: BabelConfigOptions): TransformOptions => {