Skip to content

Commit 9a7636a

Browse files
committed
feat: support rsbuild modify config hook
1 parent 3903cf9 commit 9a7636a

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

.changeset/strange-rings-thank.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@modern-js/app-tools': patch
3+
---
4+
5+
feat: support rsbuild modify config hook
6+
7+
feat: 支持 rsbuild 修改配置的 Hook 函数

packages/solutions/app-tools/src/builder/generator/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,14 @@ async function applyBuilderPlugins<B extends Bundler>(
5959
builderPluginAdapterBasic,
6060
builderPluginAdapterHtml,
6161
builderPluginAdapterSSR,
62+
builderPluginAdapterHooks,
6263
} = await import('../shared/builderPlugins/index.js');
6364

6465
builder.addPlugins([
6566
builderPluginAdapterBasic(),
6667
builderPluginAdapterSSR(options),
6768
builderPluginAdapterHtml(options),
69+
builderPluginAdapterHooks(options),
6870
]);
6971

7072
builder.addPlugins([builderPluginAdapterCopy(options)], {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import type { RsbuildPlugin } from '@rsbuild/core';
2+
import type { Bundler } from '../../../types';
3+
import type { BuilderOptions } from '../types';
4+
5+
export const builderPluginAdapterHooks = <B extends Bundler>(
6+
options: BuilderOptions<B>,
7+
): RsbuildPlugin => ({
8+
name: 'builder-plugin-support-modern-hooks',
9+
setup(api) {
10+
const _internalContext = options.appContext._internalContext;
11+
const hooks = _internalContext.pluginAPI?.getHooks();
12+
api.modifyBundlerChain(async (chain, utils) => {
13+
await hooks?.modifyBundlerChain.call(chain, utils);
14+
});
15+
api.modifyRsbuildConfig(async (config, utils) => {
16+
await hooks?.modifyRsbuildConfig.call(config, utils);
17+
});
18+
api.modifyRspackConfig(async (config, utils) => {
19+
await hooks?.modifyRspackConfig.call(config, utils);
20+
});
21+
api.modifyWebpackChain(async (chain, utils) => {
22+
await hooks?.modifyWebpackChain.call(chain, utils);
23+
});
24+
api.modifyWebpackConfig(async (config, utils) => {
25+
await hooks?.modifyWebpackConfig.call(config, utils);
26+
});
27+
},
28+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './adapterBasic';
22
export * from './adapterHtml';
33
export * from './adapterSSR';
4+
export * from './builderHooks';

0 commit comments

Comments
 (0)