Skip to content

Commit 27fb2e3

Browse files
authored
refactor: switch to pnpm workspaces (#50)
1 parent a4ebeab commit 27fb2e3

File tree

16,541 files changed

+644
-169
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

16,541 files changed

+644
-169
lines changed

README.md

Lines changed: 1 addition & 1 deletion

benchmark.mjs

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ async function coolDown() {
2525

2626
const require = createRequire(import.meta.url);
2727
const __dirname = import.meta.dirname;
28+
const caseDir = path.join(__dirname, 'cases', caseName);
29+
const srcDir = path.join(caseDir, 'src');
30+
const distDir = path.join(caseDir, 'dist');
2831

2932
const startConsole = "console.log('Benchmark Start Time', Date.now());";
3033
const startConsoleRegex = /Benchmark Start Time (\d+)/;
@@ -80,14 +83,17 @@ class BuildTool {
8083
`Running start command: ${color.bold(color.yellow(this.startScript))}`,
8184
);
8285
return new Promise((resolve, reject) => {
83-
const child = spawn(`node --run ${this.startScript}`, {
84-
stdio: ['pipe'],
85-
shell: true,
86-
env: {
87-
...process.env,
88-
NO_COLOR: '1',
86+
const child = spawn(
87+
`cd cases/${caseName} && node --run ${this.startScript}`,
88+
{
89+
stdio: ['pipe'],
90+
shell: true,
91+
env: {
92+
...process.env,
93+
NO_COLOR: '1',
94+
},
8995
},
90-
});
96+
);
9197
this.child = child;
9298
let startTime = null;
9399

@@ -148,14 +154,17 @@ class BuildTool {
148154
logger.start(
149155
`Running build command: ${color.bold(color.yellow(this.buildScript))}`,
150156
);
151-
const child = spawn(`node --run ${this.buildScript}`, {
152-
stdio: ['pipe'],
153-
shell: true,
154-
env: {
155-
...process.env,
156-
NO_COLOR: '1',
157+
const child = spawn(
158+
`cd cases/${caseName} && node --run ${this.buildScript}`,
159+
{
160+
stdio: ['pipe'],
161+
shell: true,
162+
env: {
163+
...process.env,
164+
NO_COLOR: '1',
165+
},
157166
},
158-
});
167+
);
159168
const startTime = Date.now();
160169
return new Promise((resolve, reject) => {
161170
child.on('exit', (code) => {
@@ -276,7 +285,7 @@ toolNames.forEach((name) => {
276285
buildTools.push(
277286
new BuildTool({
278287
name: 'webpack (SWC) ' + require('webpack/package.json').version,
279-
port: 8082,
288+
port: 8080,
280289
startScript: 'start:webpack',
281290
startedRegex: /compiled .+ in (.+) (s|ms)/,
282291
buildScript: 'build:webpack',
@@ -416,7 +425,7 @@ async function runBenchmark() {
416425
});
417426

418427
await new Promise((resolve) => setTimeout(resolve, 1000));
419-
const rootFilePath = path.join(__dirname, 'src', caseName, 'f0.jsx');
428+
const rootFilePath = path.join(srcDir, 'f0.jsx');
420429
const originalRootFileContent = readFileSync(rootFilePath, 'utf-8');
421430

422431
appendFile(
@@ -432,12 +441,7 @@ async function runBenchmark() {
432441

433442
await new Promise((resolve) => setTimeout(resolve, 1000));
434443

435-
const leafFilePath = path.join(
436-
__dirname,
437-
'src',
438-
caseName,
439-
'd0/d0/d0/f0.jsx',
440-
);
444+
const leafFilePath = path.join(srcDir, 'd0/d0/d0/f0.jsx');
441445
const originalLeafFileContent = readFileSync(leafFilePath, 'utf-8');
442446
appendFile(
443447
leafFilePath,
@@ -462,7 +466,6 @@ async function runBenchmark() {
462466
logger.success(color.dim(buildTool.name) + ' dev server closed');
463467

464468
// Clean up dist dir
465-
const distDir = path.join(__dirname, 'dist');
466469
await fse.remove(distDir);
467470

468471
const buildTime = await buildTool.build();

farm.config.mjs renamed to cases/react-10k/farm.config.mjs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1+
// @ts-check
12
import path from 'node:path';
23
import { defineConfig } from '@farmfe/core';
3-
import { caseName, target, isProd } from './shared.mjs';
4+
import { target, isProd } from '../../shared.mjs';
45

56
export default defineConfig({
67
compilation: {
78
sourcemap: !isProd,
89
presetEnv: false,
9-
input: {
10-
index: path.resolve(__dirname, 'src', caseName, 'index.html'),
11-
},
1210
output: {
13-
targetEnv: `browser-${target}`,
11+
// Farm does not support browser-es2022 yet
12+
targetEnv: `browser-es2017`,
1413
},
1514
},
1615
plugins: ['@farmfe/plugin-react'],
File renamed without changes.

src/react-10k/index.html renamed to cases/react-10k/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
</head>
99
<body>
1010
<div id="root"></div>
11-
<script type="module" src="./index.jsx"></script>
11+
<script type="module" src="./src/index.jsx"></script>
1212
</body>
1313
</html>

cases/react-10k/package.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"name": "react-10k",
3+
"version": "0.0.0",
4+
"scripts": {
5+
"build:farm": "farm build",
6+
"build:rolldown": "cross-env NODE_ENV=production rolldown -c ./rolldown.config.mjs",
7+
"build:rolldown-vite": "node ../../node_modules/rolldown-vite/bin/vite.js build -c rolldown-vite.config.mjs",
8+
"build:rsbuild": "rsbuild build",
9+
"build:rspack": "rspack build",
10+
"build:vite": "node ../../node_modules/vite/bin/vite.js build",
11+
"build:webpack": "cross-env NODE_ENV=production webpack build --mode production",
12+
"clean": "rm -rf ./node_modules/.cache && rm -rf ./node_modules/.vite && rm -rf ./node_modules/.farm",
13+
"start:farm": "farm start",
14+
"start:rolldown-vite": "node ../../node_modules/rolldown-vite/bin/vite.js -c rolldown-vite.config.mjs",
15+
"start:rsbuild": "rsbuild dev",
16+
"start:rsbuild:lazy": "cross-env LAZY=true rsbuild dev",
17+
"start:rspack": "rspack serve",
18+
"start:rspack:lazy": "cross-env LAZY=true rspack serve",
19+
"start:vite": "node ../../node_modules/vite/bin/vite.js",
20+
"start:webpack": "cross-env NODE_ENV=development webpack serve --mode development"
21+
},
22+
"dependencies": {
23+
"@iconify-icons/material-symbols": "^1.2.58",
24+
"@iconify/react": "^6.0.0",
25+
"react": "^19.1.0",
26+
"react-dom": "^19.1.0",
27+
"react-router-dom": "^7.6.3"
28+
}
29+
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import path from 'node:path';
1+
// @ts-check
22
import { defineConfig } from 'rolldown-vite';
33
import react from '@vitejs/plugin-react-oxc';
4-
import { caseName, target } from './shared.mjs';
4+
import { target } from '../../shared.mjs';
55

66
export default defineConfig({
7-
root: path.resolve(__dirname, 'src', caseName),
87
plugins: [react()],
98
build: {
10-
outDir: path.resolve(__dirname, 'dist'),
119
target,
1210
},
1311
optimizeDeps: {
@@ -16,5 +14,5 @@ export default defineConfig({
1614
},
1715
experimental: {
1816
enableNativePlugin: true,
19-
}
17+
},
2018
});

rolldown.config.mjs renamed to cases/react-10k/rolldown.config.mjs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1+
// @ts-check
12
import { defineConfig } from 'rolldown';
23
import path from 'path';
3-
import { caseName, target, isProd } from './shared.mjs';
4+
import { target, isProd } from '../../shared.mjs';
45

56
export default defineConfig({
6-
input: {
7-
main: path.join(import.meta.dirname, './src', caseName, 'index.jsx'),
8-
},
97
define: {
108
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
119
},

rsbuild.config.mjs renamed to cases/react-10k/rsbuild.config.mjs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
// @ts-check
2-
import path from 'node:path';
32
import { defineConfig } from '@rsbuild/core';
43
import { pluginReact } from '@rsbuild/plugin-react';
5-
import { caseName, targetBrowser } from './shared.mjs';
4+
import { targetBrowser } from '../../shared.mjs';
65

76
export default defineConfig({
87
plugins: [pluginReact()],
9-
source: {
10-
entry: {
11-
index: path.join(import.meta.dirname, 'src', caseName, 'index.jsx'),
12-
},
13-
},
148
dev: {
159
lazyCompilation: Boolean(process.env.LAZY),
1610
},

rspack.config.mjs renamed to cases/react-10k/rspack.config.mjs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ import path from 'node:path';
33
import { defineConfig } from '@rspack/cli';
44
import { rspack } from '@rspack/core';
55
import ReactRefreshPlugin from '@rspack/plugin-react-refresh';
6-
import { caseName, target, isProd } from './shared.mjs';
7-
8-
const caseDir = path.join(import.meta.dirname, './src', caseName);
6+
import { target, isProd } from '../../shared.mjs';
97

108
export default defineConfig({
119
target: ['web', target],
1210
devtool: isProd ? false : undefined,
13-
entry: path.join(caseDir, 'index.jsx'),
11+
entry: path.join(import.meta.dirname, 'src', 'index.jsx'),
1412
resolve: {
1513
extensions: ['...', '.tsx', '.ts', '.jsx'],
1614
},
@@ -43,9 +41,7 @@ export default defineConfig({
4341
],
4442
},
4543
plugins: [
46-
new rspack.HtmlRspackPlugin({
47-
template: path.join(caseDir, 'index-rspack.html'),
48-
}),
44+
new rspack.HtmlRspackPlugin({ template: 'index-rspack.html' }),
4945
!isProd && new ReactRefreshPlugin(),
5046
],
5147
experiments: {

0 commit comments

Comments
 (0)