Skip to content

Commit 69a2acd

Browse files
authored
Merge pull request #4083 from reduxjs/size-limit-action
re-add size limit action
2 parents e075e8e + b1715e8 commit 69a2acd

File tree

5 files changed

+423
-1535
lines changed

5 files changed

+423
-1535
lines changed

.github/workflows/size.yml.bak renamed to .github/workflows/size.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ jobs:
77
CI_JOB_NUMBER: 1
88
steps:
99
- uses: actions/checkout@v2
10-
- uses: andresz1/size-limit-action@v1
10+
- uses: EskiMojo14/size-limit-action@v1
1111
with:
1212
directory: packages/toolkit
1313
github_token: ${{ secrets.GITHUB_TOKEN }}
1414
build_script: build-only
15+
package_manager: yarn
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/get-config.js b/get-config.js
2+
index 76ebaee5455b2a4bacb986784bd1b53ad89adeb7..1b092e645b258f4a6533ca88b7d36dbcde4eb6de 100644
3+
--- a/get-config.js
4+
+++ b/get-config.js
5+
@@ -132,7 +132,7 @@ export default async function getConfig(plugins, process, args, pkg) {
6+
} else if (!check.entry) {
7+
if (pkg.packageJson.main) {
8+
processed.files = [
9+
- require.resolve(join(dirname(pkg.path), pkg.packageJson.main))
10+
+ import.meta.resolve(join(dirname(pkg.path), pkg.packageJson.main))
11+
]
12+
} else {
13+
processed.files = [join(dirname(pkg.path), 'index.js')]
14+
@@ -177,7 +177,7 @@ export default async function getConfig(plugins, process, args, pkg) {
15+
for (let i in check.import) {
16+
if (peer.includes(i)) {
17+
check.ignore = check.ignore.filter(j => j !== i)
18+
- imports[require.resolve(i, config.cwd)] = check.import[i]
19+
+ imports[import.meta.resolve(i, config.cwd)] = check.import[i]
20+
} else {
21+
imports[toAbsolute(i, config.cwd)] = check.import[i]
22+
}

packages/toolkit/.size-limit.js renamed to packages/toolkit/.size-limit.cjs

Lines changed: 60 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,38 @@
11
const webpack = require('webpack')
22
let { join } = require('path')
33

4-
const suffixes = ['cjs.production.min.js', 'esm.js']
4+
const esmSuffixes = ['modern.mjs', 'browser.mjs', 'legacy-esm.js']
5+
const cjsSuffixes = ['development.cjs', 'production.min.cjs']
56

6-
function withRtkPath(suffix) {
7+
function withRtkPath(suffix, cjs = false) {
8+
/**
9+
* @param {webpack.Configuration} config
10+
*/
711
return (config) => {
812
config.plugins.push(
913
new webpack.NormalModuleReplacementPlugin(
1014
/@reduxjs\/toolkit\/query\/react/,
11-
join(__dirname, `query/react`),
15+
require.resolve('./query/react'),
1216
),
1317
new webpack.NormalModuleReplacementPlugin(
1418
/@reduxjs\/toolkit\/query/,
15-
join(__dirname, `query`),
19+
require.resolve('./query'),
20+
),
21+
new webpack.NormalModuleReplacementPlugin(
22+
/@reduxjs\/toolkit\/react/,
23+
require.resolve('./react'),
1624
),
1725
new webpack.NormalModuleReplacementPlugin(
1826
/@reduxjs\/toolkit/,
19-
join(__dirname),
27+
require.resolve('.'),
2028
),
2129
new webpack.NormalModuleReplacementPlugin(
2230
/rtk-query-react.modern.js/,
2331
(r) => {
2432
const old = r.request
2533
r.request = r.request.replace(
2634
/rtk-query-react.modern.js$/,
27-
`rtk-query-react.${suffix}`,
35+
`${cjs ? 'cjs/' : ''}rtk-query-react.${suffix}`,
2836
)
2937
// console.log(old, '=>', r.request)
3038
},
@@ -33,26 +41,37 @@ function withRtkPath(suffix) {
3341
const old = r.request
3442
r.request = r.request.replace(
3543
/rtk-query.modern.js$/,
36-
`rtk-query.${suffix}`,
44+
`${cjs ? 'cjs/' : ''}rtk-query.${suffix}`,
3745
)
3846
// console.log(old, '=>', r.request)
3947
}),
48+
new webpack.NormalModuleReplacementPlugin(
49+
/redux-toolkit-react.modern.js$/,
50+
(r) => {
51+
const old = r.request
52+
r.request = r.request.replace(
53+
/redux-toolkit-react.modern.js$/,
54+
`${cjs ? 'cjs/' : ''}redux-toolkit-react.${suffix}`,
55+
)
56+
// console.log(old, '=>', r.request)
57+
},
58+
),
4059
new webpack.NormalModuleReplacementPlugin(
4160
/redux-toolkit.modern.js$/,
4261
(r) => {
4362
const old = r.request
4463
r.request = r.request.replace(
4564
/redux-toolkit.modern.js$/,
46-
`redux-toolkit.${suffix}`,
65+
`${cjs ? 'cjs/' : ''}redux-toolkit.${suffix}`,
4766
)
4867
// console.log(old, '=>', r.request)
4968
},
5069
),
5170
)
52-
if (suffix === 'cjs.production.min.js') {
53-
config.resolve.mainFields = ['main', 'module']
71+
if (suffix === 'production.min.cjs') {
72+
;(config.resolve ??= {}).mainFields = ['main', 'module']
5473
}
55-
config.optimization.nodeEnv = 'production'
74+
;(config.optimization ??= {}).nodeEnv = 'production'
5675
return config
5776
}
5877
}
@@ -66,42 +85,62 @@ const ignoreAll = [
6685
'redux-thunk',
6786
]
6887

69-
module.exports = [
88+
const entryPoints = [
7089
{
7190
name: `1. entry point: @reduxjs/toolkit`,
72-
path: 'dist/redux-toolkit.modern.js',
91+
path: 'dist/redux-toolkit.modern.mjs',
92+
},
93+
{
94+
name: `1. entry point: @reduxjs/toolkit/react`,
95+
path: 'dist/react/redux-toolkit-react.modern.mjs',
7396
},
7497
{
7598
name: `1. entry point: @reduxjs/toolkit/query`,
76-
path: 'dist/query/rtk-query.modern.js',
99+
path: 'dist/query/rtk-query.modern.mjs',
77100
},
78101
{
79102
name: `1. entry point: @reduxjs/toolkit/query/react`,
80-
path: 'dist/query/react/rtk-query-react.modern.js',
103+
path: 'dist/query/react/rtk-query-react.modern.mjs',
81104
},
82105
{
83106
name: `2. entry point: @reduxjs/toolkit (without dependencies)`,
84-
path: 'dist/redux-toolkit.modern.js',
107+
path: 'dist/redux-toolkit.modern.mjs',
108+
ignore: ignoreAll,
109+
},
110+
{
111+
name: `2. entry point: @reduxjs/toolkit/react (without dependencies)`,
112+
path: 'dist/react/redux-toolkit-react.modern.mjs',
85113
ignore: ignoreAll,
86114
},
87115
{
88116
name: `2. entry point: @reduxjs/toolkit/query (without dependencies)`,
89-
path: 'dist/query/rtk-query.modern.js',
117+
path: 'dist/query/rtk-query.modern.mjs',
90118
ignore: ignoreAll,
91119
},
92120
{
93121
name: `2. entry point: @reduxjs/toolkit/query/react (without dependencies)`,
94-
path: 'dist/query/react/rtk-query-react.modern.js',
122+
path: 'dist/query/react/rtk-query-react.modern.mjs',
95123
ignore: ignoreAll,
96124
},
97125
]
126+
127+
module.exports = entryPoints
98128
.flatMap((e) =>
99-
suffixes.map((suffix) => ({
129+
esmSuffixes.map((suffix) => ({
100130
...e,
101131
name: e.name + ` (${suffix})`,
102132
modifyWebpackConfig: withRtkPath(suffix),
103133
})),
104134
)
135+
.concat(
136+
entryPoints.flatMap((e) =>
137+
cjsSuffixes.map((suffix) => ({
138+
...e,
139+
name: e.name + ` (cjs, ${suffix})`,
140+
modifyWebpackConfig: withRtkPath(suffix, true),
141+
})),
142+
),
143+
)
105144
.concat(
106145
...[
107146
{
@@ -138,7 +177,7 @@ module.exports = [
138177
},
139178
].map((e) => ({
140179
...e,
141-
name: e.name + ` (esm.js)`,
142-
modifyWebpackConfig: withRtkPath('esm.js'),
180+
name: e.name + ` (.modern.mjs)`,
181+
modifyWebpackConfig: withRtkPath('.modern.mjs'),
143182
})),
144183
)

packages/toolkit/package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
"@arethetypeswrong/cli": "^0.13.5",
5353
"@microsoft/api-extractor": "^7.13.2",
5454
"@phryneas/ts-version": "^1.0.2",
55-
"@size-limit/preset-small-lib": "^4.11.0",
55+
"@size-limit/file": "^11.0.1",
56+
"@size-limit/webpack": "^11.0.1",
5657
"@testing-library/react": "^13.3.0",
5758
"@testing-library/user-event": "^13.1.5",
5859
"@types/json-stringify-safe": "^5.0.0",
@@ -86,7 +87,7 @@
8687
"prettier": "^3.2.4",
8788
"query-string": "^7.0.1",
8889
"rimraf": "^3.0.2",
89-
"size-limit": "^4.11.0",
90+
"size-limit": "^11.0.1",
9091
"tslib": "^1.10.0",
9192
"tsup": "^7.2.0",
9293
"tsx": "^3.12.2",
@@ -105,7 +106,8 @@
105106
"test": "vitest --run --typecheck",
106107
"test:watch": "vitest --watch",
107108
"type-tests": "yarn tsc -p tsconfig.test.json --noEmit",
108-
"prepack": "yarn build"
109+
"prepack": "yarn build",
110+
"size": "size-limit"
109111
},
110112
"files": [
111113
"dist/",

0 commit comments

Comments
 (0)