Skip to content

Commit 5474f64

Browse files
authored
feat: add new onAfterDevCompile plugin hook (#5882)
1 parent ff9a3fb commit 5474f64

File tree

15 files changed

+52
-33
lines changed

15 files changed

+52
-33
lines changed

e2e/cases/output/manifest-environment/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ test('should allow to access manifest data in environment context after dev buil
9393
{
9494
name: 'test',
9595
setup(api: RsbuildPluginAPI) {
96-
api.onDevCompileDone(({ environments }) => {
96+
api.onAfterDevCompile(({ environments }) => {
9797
if (environments.web.manifest) {
9898
webManifest = environments.web.manifest;
9999
}

e2e/cases/plugin-api/plugin-hooks-environment/index.test.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,19 @@ const createPlugin = () => {
6060
names.push('BeforeStartProdServer');
6161
});
6262
api.onCloseDevServer(() => {
63-
names.push('OnCloseDevServer');
63+
names.push('CloseDevServer');
6464
});
6565
api.onAfterStartProdServer(() => {
6666
names.push('AfterStartProdServer');
6767
});
6868
api.onBeforeDevCompile(() => {
6969
names.push('BeforeDevCompile');
7070
});
71+
api.onAfterDevCompile(() => {
72+
names.push('AfterDevCompile');
73+
});
7174
api.onDevCompileDone(() => {
72-
names.push('OnDevCompileDone');
75+
names.push('DevCompileDone');
7376
});
7477
},
7578
};
@@ -176,7 +179,7 @@ rspackOnlyTest(
176179
expect(names.filter((name) => name.includes('DevServer'))).toEqual([
177180
'BeforeStartDevServer',
178181
'AfterStartDevServer',
179-
'OnCloseDevServer',
182+
'CloseDevServer',
180183
]);
181184

182185
// compile is async, so the execution order of AfterStartDevServer and the compile hooks is uncertain
@@ -197,8 +200,9 @@ rspackOnlyTest(
197200
'ModifyHTMLTags web',
198201
'ModifyHTML web',
199202
'AfterEnvironmentCompile web',
200-
'OnDevCompileDone',
201-
'OnCloseDevServer',
203+
'AfterDevCompile',
204+
'DevCompileDone',
205+
'CloseDevServer',
202206
]);
203207

204208
expect(
@@ -218,8 +222,9 @@ rspackOnlyTest(
218222
'ModifyHTMLTags node',
219223
'ModifyHTML node',
220224
'AfterEnvironmentCompile node',
221-
'OnDevCompileDone',
222-
'OnCloseDevServer',
225+
'AfterDevCompile',
226+
'DevCompileDone',
227+
'CloseDevServer',
223228
]);
224229

225230
process.env.NODE_ENV = 'test';

e2e/cases/plugin-api/plugin-hooks/index.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ rspackOnlyTest(
3838
'ModifyHTML',
3939
'AfterEnvironmentCompile',
4040
'AfterBuild',
41-
'OnCloseBuild',
41+
'CloseBuild',
4242
]);
4343
},
4444
);
@@ -75,7 +75,7 @@ rspackOnlyTest(
7575
'ModifyHTML',
7676
'AfterEnvironmentCompile',
7777
'AfterBuild',
78-
'OnCloseBuild',
78+
'CloseBuild',
7979
]);
8080
},
8181
);
@@ -106,7 +106,7 @@ rspackOnlyTest(
106106
expect(hooks.filter((name) => name.includes('DevServer'))).toEqual([
107107
'BeforeStartDevServer',
108108
'AfterStartDevServer',
109-
'OnCloseDevServer',
109+
'CloseDevServer',
110110
]);
111111

112112
// compile is async, so the execution order of AfterStartDevServer and the compile hooks is uncertain
@@ -123,8 +123,9 @@ rspackOnlyTest(
123123
'ModifyHTMLTags',
124124
'ModifyHTML',
125125
'AfterEnvironmentCompile',
126-
'OnDevCompileDone',
127-
'OnCloseDevServer',
126+
'AfterDevCompile',
127+
'DevCompileDone',
128+
'CloseDevServer',
128129
]);
129130

130131
process.env.NODE_ENV = 'test';

e2e/cases/rspack-profile/dev.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ async function main() {
2222
},
2323
});
2424

25-
rsbuild.onDevCompileDone(() => {
25+
rsbuild.onAfterDevCompile(() => {
2626
process.exit(0);
2727
});
2828

e2e/helper/jsApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export async function dev({
117117

118118
const wait = waitFirstCompileDone
119119
? new Promise<void>((resolve) => {
120-
rsbuild.onDevCompileDone(({ isFirstCompile }) => {
120+
rsbuild.onAfterDevCompile(({ isFirstCompile }) => {
121121
if (!isFirstCompile) {
122122
return;
123123
}

e2e/helper/utils.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,16 +238,19 @@ export const recordPluginHooks = () => {
238238
hooks.push('BeforeStartProdServer');
239239
});
240240
api.onCloseDevServer(() => {
241-
hooks.push('OnCloseDevServer');
241+
hooks.push('CloseDevServer');
242242
});
243243
api.onAfterStartProdServer(() => {
244244
hooks.push('AfterStartProdServer');
245245
});
246+
api.onAfterDevCompile(() => {
247+
hooks.push('AfterDevCompile');
248+
});
246249
api.onDevCompileDone(() => {
247-
hooks.push('OnDevCompileDone');
250+
hooks.push('DevCompileDone');
248251
});
249252
api.onCloseBuild(() => {
250-
hooks.push('OnCloseBuild');
253+
hooks.push('CloseBuild');
251254
});
252255
},
253256
};

packages/core/src/createRsbuild.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ export async function createRsbuild(
317317
'onAfterStartProdServer',
318318
'onCloseDevServer',
319319
'onBeforeDevCompile',
320+
'onAfterDevCompile',
320321
'onDevCompileDone',
321322
'onExit',
322323
'getRsbuildConfig',

packages/core/src/hooks.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import type {
1515
ModifyWebpackConfigFn,
1616
OnAfterBuildFn,
1717
OnAfterCreateCompilerFn,
18+
OnAfterDevCompileFn,
1819
OnAfterEnvironmentCompileFn,
1920
OnAfterStartDevServerFn,
2021
OnAfterStartProdServerFn,
@@ -26,7 +27,6 @@ import type {
2627
OnBeforeStartProdServerFn,
2728
OnCloseBuildFn,
2829
OnCloseDevServerFn,
29-
OnDevCompileDoneFn,
3030
OnExitFn,
3131
Rspack,
3232
} from './types';
@@ -203,7 +203,7 @@ export function initHooks(): {
203203
onCloseBuild: AsyncHook<OnCloseBuildFn>;
204204
onBeforeBuild: AsyncHook<OnBeforeBuildFn>;
205205
onBeforeDevCompile: AsyncHook<OnBeforeDevCompileFn>;
206-
onDevCompileDone: AsyncHook<OnDevCompileDoneFn>;
206+
onAfterDevCompile: AsyncHook<OnAfterDevCompileFn>;
207207
onCloseDevServer: AsyncHook<OnCloseDevServerFn>;
208208
onAfterStartDevServer: AsyncHook<OnAfterStartDevServerFn>;
209209
onBeforeStartDevServer: AsyncHook<OnBeforeStartDevServerFn>;
@@ -229,7 +229,7 @@ export function initHooks(): {
229229
onAfterBuild: createAsyncHook<OnAfterBuildFn>(),
230230
onBeforeBuild: createAsyncHook<OnBeforeBuildFn>(),
231231
onBeforeDevCompile: createAsyncHook<OnBeforeDevCompileFn>(),
232-
onDevCompileDone: createAsyncHook<OnDevCompileDoneFn>(),
232+
onAfterDevCompile: createAsyncHook<OnAfterDevCompileFn>(),
233233
onCloseDevServer: createAsyncHook<OnCloseDevServerFn>(),
234234
onAfterStartDevServer: createAsyncHook<OnAfterStartDevServerFn>(),
235235
onBeforeStartDevServer: createAsyncHook<OnBeforeStartDevServerFn>(),
@@ -500,7 +500,7 @@ export const registerDevHook = ({
500500
});
501501

502502
const onDone = async (stats: Rspack.Stats | Rspack.MultiStats) => {
503-
const p = context.hooks.onDevCompileDone.callBatch({
503+
const p = context.hooks.onAfterDevCompile.callBatch({
504504
isFirstCompile,
505505
stats,
506506
environments: context.environments,

packages/core/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ export type {
123123
NormalizedToolsConfig,
124124
OnAfterBuildFn,
125125
OnAfterCreateCompilerFn,
126+
OnAfterDevCompileFn,
126127
OnAfterEnvironmentCompileFn,
127128
OnAfterStartDevServerFn,
128129
OnAfterStartProdServerFn,
@@ -134,7 +135,6 @@ export type {
134135
OnBeforeStartProdServerFn,
135136
OnCloseBuildFn,
136137
OnCloseDevServerFn,
137-
OnDevCompileDoneFn,
138138
OnExitFn,
139139
OutputConfig,
140140
OutputStructure,

packages/core/src/initPlugins.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,9 @@ export function initPluginAPI({
357357
onBeforeBuild: hooks.onBeforeBuild.tap,
358358
onCloseDevServer: hooks.onCloseDevServer.tap,
359359
onBeforeDevCompile: hooks.onBeforeDevCompile.tap,
360-
onDevCompileDone: hooks.onDevCompileDone.tap,
360+
onAfterDevCompile: hooks.onAfterDevCompile.tap,
361+
// alias for `onAfterDevCompile`
362+
onDevCompileDone: hooks.onAfterDevCompile.tap,
361363
onAfterCreateCompiler: hooks.onAfterCreateCompiler.tap,
362364
onAfterStartDevServer: hooks.onAfterStartDevServer.tap,
363365
onBeforeCreateCompiler: hooks.onBeforeCreateCompiler.tap,

0 commit comments

Comments
 (0)