Skip to content

Commit bd0bfc1

Browse files
Rspack (#22807)
* Add rspack * Remove TransformAsyncModulesPlugin from rspack * Migrate all webpack usage to rspack * Migrate tests to vitest * Fix test suites * Remove chai dependency * Fix compute_state_display tests * Fix resolveTimeZone * Reduces test pipeline * Revert test ci * optimize chunk filtering * Migrate landing-page to rspack * Update rspack dependencies * Add rsdoctor * Fix prod build bundle size * Use rsdoctor for demo stats * Remove unused webpack configs * Update build-scripts/rspack.cjs Co-authored-by: Petar Petrov <[email protected]> * Fix eslint * Update rspack * Remove unused code --------- Co-authored-by: Petar Petrov <[email protected]>
1 parent 09c5dab commit bd0bfc1

File tree

72 files changed

+2368
-1401
lines changed

Some content is hidden

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

72 files changed

+2368
-1401
lines changed

.vscode/extensions.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"esbenp.prettier-vscode",
55
"runem.lit-plugin",
66
"github.vscode-pull-request-github",
7-
"eamodio.gitlens"
7+
"eamodio.gitlens",
8+
"vitest.explorer"
89
]
910
}

build-scripts/bundle.cjs

-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ module.exports.babelOptions = ({
152152
exclude: [
153153
// \\ for Windows, / for Mac OS and Linux
154154
/node_modules[\\/]core-js/,
155-
/node_modules[\\/]webpack[\\/]buildin/,
156155
],
157156
sourceMaps: !isTestBuild,
158157
overrides: [

build-scripts/gulp/app.js

+15-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import "./locale-data.js";
99
import "./service-worker.js";
1010
import "./translations.js";
1111
import "./wds.js";
12-
import "./webpack.js";
12+
import "./rspack.js";
1313

1414
gulp.task(
1515
"develop-app",
@@ -26,7 +26,7 @@ gulp.task(
2626
"build-locale-data"
2727
),
2828
"copy-static-app",
29-
env.useWDS() ? "wds-watch-app" : "webpack-watch-app"
29+
env.useWDS() ? "wds-watch-app" : "rspack-watch-app"
3030
)
3131
);
3232

@@ -39,9 +39,20 @@ gulp.task(
3939
"clean",
4040
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
4141
"copy-static-app",
42-
"webpack-prod-app",
42+
"rspack-prod-app",
4343
gulp.parallel("gen-pages-app-prod", "gen-service-worker-app-prod"),
4444
// Don't compress running tests
45-
...(env.isTestBuild() ? [] : ["compress-app"])
45+
...(env.isTestBuild() || env.isStatsBuild() ? [] : ["compress-app"])
46+
)
47+
);
48+
49+
gulp.task(
50+
"analyze-app",
51+
gulp.series(
52+
async function setEnv() {
53+
process.env.STATS = "1";
54+
},
55+
"clean",
56+
"rspack-prod-app"
4657
)
4758
);

build-scripts/gulp/cast.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import "./entry-html.js";
44
import "./gather-static.js";
55
import "./service-worker.js";
66
import "./translations.js";
7-
import "./webpack.js";
7+
import "./rspack.js";
88

99
gulp.task(
1010
"develop-cast",
@@ -17,7 +17,7 @@ gulp.task(
1717
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
1818
"copy-static-cast",
1919
"gen-pages-cast-dev",
20-
"webpack-dev-server-cast"
20+
"rspack-dev-server-cast"
2121
)
2222
);
2323

@@ -31,7 +31,7 @@ gulp.task(
3131
"translations-enable-merge-backend",
3232
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
3333
"copy-static-cast",
34-
"webpack-prod-cast",
34+
"rspack-prod-cast",
3535
"gen-pages-cast-prod"
3636
)
3737
);

build-scripts/gulp/demo.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import "./gather-static.js";
55
import "./gen-icons-json.js";
66
import "./service-worker.js";
77
import "./translations.js";
8-
import "./webpack.js";
8+
import "./rspack.js";
99

1010
gulp.task(
1111
"develop-demo",
@@ -22,7 +22,7 @@ gulp.task(
2222
"build-locale-data"
2323
),
2424
"copy-static-demo",
25-
"webpack-dev-server-demo"
25+
"rspack-dev-server-demo"
2626
)
2727
);
2828

@@ -37,7 +37,18 @@ gulp.task(
3737
"translations-enable-merge-backend",
3838
gulp.parallel("gen-icons-json", "build-translations", "build-locale-data"),
3939
"copy-static-demo",
40-
"webpack-prod-demo",
40+
"rspack-prod-demo",
4141
"gen-pages-demo-prod"
4242
)
4343
);
44+
45+
gulp.task(
46+
"analyze-demo",
47+
gulp.series(
48+
async function setEnv() {
49+
process.env.STATS = "1";
50+
},
51+
"clean",
52+
"rspack-prod-demo"
53+
)
54+
);

build-scripts/gulp/gallery.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import "./gather-static.js";
1111
import "./gen-icons-json.js";
1212
import "./service-worker.js";
1313
import "./translations.js";
14-
import "./webpack.js";
14+
import "./rspack.js";
1515

1616
gulp.task("gather-gallery-pages", async function gatherPages() {
1717
const pageDir = path.resolve(paths.gallery_dir, "src/pages");
@@ -156,7 +156,7 @@ gulp.task(
156156
"copy-static-gallery",
157157
"gen-pages-gallery-dev",
158158
gulp.parallel(
159-
"webpack-dev-server-gallery",
159+
"rspack-dev-server-gallery",
160160
async function watchMarkdownFiles() {
161161
gulp.watch(
162162
[
@@ -185,7 +185,7 @@ gulp.task(
185185
"gather-gallery-pages"
186186
),
187187
"copy-static-gallery",
188-
"webpack-prod-gallery",
188+
"rspack-prod-gallery",
189189
"gen-pages-gallery-prod"
190190
)
191191
);

build-scripts/gulp/hassio.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import "./entry-html.js";
66
import "./gather-static.js";
77
import "./gen-icons-json.js";
88
import "./translations.js";
9-
import "./webpack.js";
9+
import "./rspack.js";
1010

1111
gulp.task(
1212
"develop-hassio",
@@ -21,7 +21,7 @@ gulp.task(
2121
"copy-translations-supervisor",
2222
"build-locale-data",
2323
"copy-static-supervisor",
24-
"webpack-watch-hassio"
24+
"rspack-watch-hassio"
2525
)
2626
);
2727

@@ -37,7 +37,7 @@ gulp.task(
3737
"copy-translations-supervisor",
3838
"build-locale-data",
3939
"copy-static-supervisor",
40-
"webpack-prod-hassio",
40+
"rspack-prod-hassio",
4141
"gen-pages-hassio-prod",
4242
...// Don't compress running tests
4343
(env.isTestBuild() ? [] : ["compress-hassio"])

build-scripts/gulp/landing-page.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import "./entry-html.js";
55
import "./gather-static.js";
66
import "./gen-icons-json.js";
77
import "./translations.js";
8-
import "./webpack.js";
8+
import "./rspack.js";
99

1010
gulp.task(
1111
"develop-landing-page",
@@ -20,7 +20,7 @@ gulp.task(
2020
"build-locale-data",
2121
"copy-static-landing-page",
2222
"gen-pages-landing-page-dev",
23-
"webpack-watch-landing-page"
23+
"rspack-watch-landing-page"
2424
)
2525
);
2626

@@ -35,7 +35,7 @@ gulp.task(
3535
"copy-translations-landing-page",
3636
"build-locale-data",
3737
"copy-static-landing-page",
38-
"webpack-prod-landing-page",
38+
"rspack-prod-landing-page",
3939
"gen-pages-landing-page-prod"
4040
)
4141
);

build-scripts/gulp/webpack.js build-scripts/gulp/rspack.js

+28-27
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// Tasks to run webpack.
1+
// Tasks to run rspack.
22

33
import fs from "fs";
44
import path from "path";
55
import log from "fancy-log";
66
import gulp from "gulp";
7-
import webpack from "webpack";
8-
import WebpackDevServer from "webpack-dev-server";
7+
import rspack from "@rspack/core";
8+
import { RspackDevServer } from "@rspack/dev-server";
99
import env from "../env.cjs";
1010
import paths from "../paths.cjs";
1111
import {
@@ -15,7 +15,7 @@ import {
1515
createGalleryConfig,
1616
createHassioConfig,
1717
createLandingPageConfig,
18-
} from "../webpack.cjs";
18+
} from "../rspack.cjs";
1919

2020
const bothBuilds = (createConfigFunc, params) => [
2121
createConfigFunc({ ...params, latestBuild: true }),
@@ -31,7 +31,7 @@ const isWsl =
3131

3232
/**
3333
* @param {{
34-
* compiler: import("webpack").Compiler,
34+
* compiler: import("@rspack/core").Compiler,
3535
* contentBase: string,
3636
* port: number,
3737
* listenHost?: string
@@ -48,7 +48,7 @@ const runDevServer = async ({
4848
// For dev container, we need to listen on all hosts
4949
listenHost = env.isDevContainer() ? "0.0.0.0" : "localhost";
5050
}
51-
const server = new WebpackDevServer(
51+
const server = new RspackDevServer(
5252
{
5353
hot: false,
5454
open: true,
@@ -65,7 +65,7 @@ const runDevServer = async ({
6565

6666
await server.start();
6767
// Server listening
68-
log("[webpack-dev-server]", `Project is running at http://localhost:${port}`);
68+
log("[rspack-dev-server]", `Project is running at http://localhost:${port}`);
6969
};
7070

7171
const doneHandler = (done) => (err, stats) => {
@@ -90,16 +90,16 @@ const doneHandler = (done) => (err, stats) => {
9090

9191
const prodBuild = (conf) =>
9292
new Promise((resolve) => {
93-
webpack(
93+
rspack(
9494
conf,
95-
// Resolve promise when done. Because we pass a callback, webpack closes itself
95+
// Resolve promise when done. Because we pass a callback, rspack closes itself
9696
doneHandler(resolve)
9797
);
9898
});
9999

100-
gulp.task("webpack-watch-app", () => {
100+
gulp.task("rspack-watch-app", () => {
101101
// This command will run forever because we don't close compiler
102-
webpack(
102+
rspack(
103103
process.env.ES5
104104
? bothBuilds(createAppConfig, { isProdBuild: false })
105105
: createAppConfig({ isProdBuild: false, latestBuild: true })
@@ -110,7 +110,7 @@ gulp.task("webpack-watch-app", () => {
110110
);
111111
});
112112

113-
gulp.task("webpack-prod-app", () =>
113+
gulp.task("rspack-prod-app", () =>
114114
prodBuild(
115115
bothBuilds(createAppConfig, {
116116
isProdBuild: true,
@@ -120,27 +120,28 @@ gulp.task("webpack-prod-app", () =>
120120
)
121121
);
122122

123-
gulp.task("webpack-dev-server-demo", () =>
123+
gulp.task("rspack-dev-server-demo", () =>
124124
runDevServer({
125-
compiler: webpack(
125+
compiler: rspack(
126126
createDemoConfig({ isProdBuild: false, latestBuild: true })
127127
),
128128
contentBase: paths.demo_output_root,
129129
port: 8090,
130130
})
131131
);
132132

133-
gulp.task("webpack-prod-demo", () =>
133+
gulp.task("rspack-prod-demo", () =>
134134
prodBuild(
135135
bothBuilds(createDemoConfig, {
136136
isProdBuild: true,
137+
isStatsBuild: env.isStatsBuild(),
137138
})
138139
)
139140
);
140141

141-
gulp.task("webpack-dev-server-cast", () =>
142+
gulp.task("rspack-dev-server-cast", () =>
142143
runDevServer({
143-
compiler: webpack(
144+
compiler: rspack(
144145
createCastConfig({ isProdBuild: false, latestBuild: true })
145146
),
146147
contentBase: paths.cast_output_root,
@@ -150,17 +151,17 @@ gulp.task("webpack-dev-server-cast", () =>
150151
})
151152
);
152153

153-
gulp.task("webpack-prod-cast", () =>
154+
gulp.task("rspack-prod-cast", () =>
154155
prodBuild(
155156
bothBuilds(createCastConfig, {
156157
isProdBuild: true,
157158
})
158159
)
159160
);
160161

161-
gulp.task("webpack-watch-hassio", () => {
162+
gulp.task("rspack-watch-hassio", () => {
162163
// This command will run forever because we don't close compiler
163-
webpack(
164+
rspack(
164165
createHassioConfig({
165166
isProdBuild: false,
166167
latestBuild: true,
@@ -173,7 +174,7 @@ gulp.task("webpack-watch-hassio", () => {
173174
);
174175
});
175176

176-
gulp.task("webpack-prod-hassio", () =>
177+
gulp.task("rspack-prod-hassio", () =>
177178
prodBuild(
178179
bothBuilds(createHassioConfig, {
179180
isProdBuild: true,
@@ -183,9 +184,9 @@ gulp.task("webpack-prod-hassio", () =>
183184
)
184185
);
185186

186-
gulp.task("webpack-dev-server-gallery", () =>
187+
gulp.task("rspack-dev-server-gallery", () =>
187188
runDevServer({
188-
compiler: webpack(
189+
compiler: rspack(
189190
createGalleryConfig({ isProdBuild: false, latestBuild: true })
190191
),
191192
contentBase: paths.gallery_output_root,
@@ -194,7 +195,7 @@ gulp.task("webpack-dev-server-gallery", () =>
194195
})
195196
);
196197

197-
gulp.task("webpack-prod-gallery", () =>
198+
gulp.task("rspack-prod-gallery", () =>
198199
prodBuild(
199200
createGalleryConfig({
200201
isProdBuild: true,
@@ -203,9 +204,9 @@ gulp.task("webpack-prod-gallery", () =>
203204
)
204205
);
205206

206-
gulp.task("webpack-watch-landing-page", () => {
207+
gulp.task("rspack-watch-landing-page", () => {
207208
// This command will run forever because we don't close compiler
208-
webpack(
209+
rspack(
209210
process.env.ES5
210211
? bothBuilds(createLandingPageConfig, { isProdBuild: false })
211212
: createLandingPageConfig({ isProdBuild: false, latestBuild: true })
@@ -220,7 +221,7 @@ gulp.task("webpack-watch-landing-page", () => {
220221
);
221222
});
222223

223-
gulp.task("webpack-prod-landing-page", () =>
224+
gulp.task("rspack-prod-landing-page", () =>
224225
prodBuild(
225226
bothBuilds(createLandingPageConfig, {
226227
isProdBuild: true,

0 commit comments

Comments
 (0)