Skip to content

Commit 5fb34a9

Browse files
committed
feat(rzpack): 支持babel
1 parent fede373 commit 5fb34a9

File tree

7 files changed

+489
-290
lines changed

7 files changed

+489
-290
lines changed

packages/rzpack/package.json

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"node": ">=16.0.0"
4141
},
4242
"dependencies": {
43+
"@babel/core": "^7.22.17",
4344
"@module-federation/fmr": "^0.0.7",
4445
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.13",
4546
"@renzp/css-scoped-loader": "^0.0.16",
@@ -52,6 +53,7 @@
5253
"@soda/friendly-errors-webpack-plugin": "^1.8.1",
5354
"@svgr/webpack": "^6.5.1",
5455
"@swc/core": "1.3.32",
56+
"babel-loader": "^9.1.3",
5557
"browserslist": "^4.23.0",
5658
"cac": "^6.7.14",
5759
"compression": "^1.7.4",
@@ -80,6 +82,7 @@
8082
"postcss-normalize": "^10.0.1",
8183
"postcss-preset-env": "^7.8.3",
8284
"react-refresh": "^0.14.2",
85+
"rzpack-babel-preset": "^0.0.2",
8386
"rzpack-ui": "workspace:*",
8487
"rzpack-utils": "workspace:*",
8588
"sirv": "^2.0.4",

packages/rzpack/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ export type RzpackChain = (w: WebpackChain) => WebpackChain
9696
export const defineConfig = (configs: RzpackConfigs) => configs
9797

9898
export enum JSX_TOOLS {
99+
BABEL = 'babel',
99100
ESBUILD = 'esbuild',
100101
SWC = 'swc',
101102
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { requireResolve } from 'rzpack-utils'
2+
import type WebpackChain from 'webpack-chain'
3+
4+
export default (webpackChain: WebpackChain) => {
5+
// 配置babel
6+
return webpackChain.module
7+
.rule('babel')
8+
.test(/\.[tj]sx?$/)
9+
.exclude.add(/node_modules/)
10+
.end()
11+
.use('babel')
12+
.loader(requireResolve('babel-loader'))
13+
.options({
14+
cacheDirectory: true,
15+
presets: [requireResolve('rzpack-babel-preset')],
16+
})
17+
.end()
18+
}

packages/rzpack/src/webpack/assets/jsx/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import { requireResolve } from 'rzpack-utils'
22
import type WebpackChain from 'webpack-chain'
33
import { JSX_TOOLS } from '../../..'
44
import type { RzpackAssets } from '../index'
5+
import babel from './babel'
56
import esbuild from './esbuild'
67
import swc from './swc'
78

89
export default (webpackChain: WebpackChain, assets: RzpackAssets) => {
910
const { jsxTools = JSX_TOOLS.ESBUILD, cssScoped } = assets ?? {}
1011
const transformTools = {
12+
[JSX_TOOLS.BABEL]: babel,
1113
[JSX_TOOLS.ESBUILD]: esbuild,
1214
[JSX_TOOLS.SWC]: swc,
1315
}

packages/rzpack/src/webpack/configs/minimizer.ts

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export default (
2727

2828
const minimizers = {
2929
swc: esbuildMinimizer,
30+
babel: esbuildMinimizer,
3031
esbuild: esbuildMinimizer,
3132
}
3233

playground/rzpack.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { BUILDER, JSX_TOOLS, defineConfig } from 'rzpack'
22

33
export default defineConfig({
4-
builder: BUILDER.RSPACK,
4+
// builder: BUILDER.RSPACK,
55
html: {
66
title: 'rzpack-antd',
77
},
@@ -12,7 +12,7 @@ export default defineConfig({
1212
file: './src/theme/globalVars.ts',
1313
},
1414
assets: {
15-
jsxTools: JSX_TOOLS.ESBUILD,
15+
jsxTools: JSX_TOOLS.BABEL,
1616
cssScoped: true,
1717
},
1818
gzip:true,

0 commit comments

Comments
 (0)