Skip to content

Commit 4752d70

Browse files
ryansolidclaude
andcommitted
ci(size): resolve fixtures via esbuild aliases, not root workspace deps
Adding solid-js/@solidjs/* as root devDeps re-keyed pnpm's peer graph (vitest and vite-plugin-solid instances gained new peer contexts), relocating the benchmark harness's physical dependencies — which CodSpeed reports as instruction-count regressions despite zero code changes. Aliases in .size-limit.js point bare specifiers at the built browser-prod artifacts instead; the lockfile now only adds size-limit's own isolated tree. Same measured numbers on every scenario. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 48279b1 commit 4752d70

4 files changed

Lines changed: 110 additions & 59 deletions

File tree

.size-limit.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Import-cost scenarios for #2883. Bare specifiers resolve via esbuild
2+
// aliases to the built browser-prod artifacts rather than root workspace
3+
// devDeps: adding solid-js/@solidjs/* to the root package.json re-keys
4+
// pnpm's peer graph (vitest/vite-plugin-solid instances), which relocates
5+
// the benchmark harness and shows up as phantom CodSpeed regressions.
6+
const alias = {
7+
"solid-js": "./packages/solid/dist/solid.js",
8+
"@solidjs/web": "./packages/solid-web/dist/web.js",
9+
"@solidjs/signals": "./packages/solid-signals/dist/prod/index.js"
10+
};
11+
const modifyEsbuildConfig = config => ({ ...config, alias });
12+
13+
module.exports = [
14+
{
15+
name: "signals: core floor (createSignal/Memo/Effect/Root/flush)",
16+
path: "packages/solid-signals/dist/prod/index.js",
17+
import: "{ createSignal, createMemo, createEffect, createRoot, flush }",
18+
limit: "7.1 KB",
19+
modifyEsbuildConfig
20+
},
21+
{
22+
name: "signals: + createStore",
23+
path: "packages/solid-signals/dist/prod/index.js",
24+
import: "{ createSignal, createMemo, createEffect, createRoot, flush, createStore }",
25+
limit: "11.6 KB",
26+
modifyEsbuildConfig
27+
},
28+
{
29+
name: "signals: + isPending/latest",
30+
path: "packages/solid-signals/dist/prod/index.js",
31+
import: "{ createSignal, createMemo, createEffect, createRoot, flush, isPending, latest }",
32+
limit: "8.75 KB",
33+
modifyEsbuildConfig
34+
},
35+
{
36+
name: "app: render + one signal (the simple-app floor)",
37+
path: "size-fixtures/minimal-app.js",
38+
limit: "10 KB",
39+
modifyEsbuildConfig
40+
},
41+
{
42+
name: "app: CSR with Show/For/Loading/Errored/lazy",
43+
path: "size-fixtures/csr-app.js",
44+
limit: "12 KB",
45+
modifyEsbuildConfig
46+
}
47+
];

.size-limit.json

Lines changed: 0 additions & 30 deletions
This file was deleted.

package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@
4040
"@rollup/plugin-node-resolve": "^15.0.1",
4141
"@rollup/plugin-replace": "^5.0.2",
4242
"@size-limit/preset-small-lib": "^12.1.0",
43-
"@solidjs/signals": "workspace:*",
44-
"@solidjs/web": "workspace:*",
4543
"@types/node": "^25.0.8",
4644
"@vitest/coverage-v8": "^4.1.6",
4745
"babel-plugin-transform-rename-import": "^2.3.0",
@@ -59,7 +57,6 @@
5957
"seroval": "~1.5.4",
6058
"simple-git-hooks": "^2.8.1",
6159
"size-limit": "^12.1.0",
62-
"solid-js": "workspace:*",
6360
"symlink-dir": "^5.0.1",
6461
"tsconfig-replace-paths": "^0.0.11",
6562
"turbo": "^2.0.0",

pnpm-lock.yaml

Lines changed: 63 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)