@@ -114,6 +114,7 @@ const getCommonConfig = async ({
114114 exclude,
115115 redirect,
116116 editRepo,
117+ algolia,
117118} : {
118119 config : UserConfig
119120 configFilePath ?: string
@@ -130,6 +131,7 @@ const getCommonConfig = async ({
130131 exclude ?: string [ ]
131132 redirect ?: 'auto' | 'never' | 'only-default-lang'
132133 editRepo ?: boolean | string
134+ algolia ?: boolean
133135} ) : Promise < UserConfig > => {
134136 const fallbackToZh = 'lang' in config && ! config . lang
135137 root = resolveDocRoot ( CWD , root , config . root )
@@ -285,12 +287,30 @@ const getCommonConfig = async ({
285287 open,
286288 } ,
287289 tools : {
288- rspack : {
289- resolve : {
290- extensionAlias : {
291- '.js' : [ '.ts' , '.tsx' , '.js' ] ,
290+ rspack ( rspackConfig , { mergeConfig, rspack } ) {
291+ return mergeConfig ( rspackConfig , {
292+ resolve : {
293+ extensionAlias : {
294+ '.js' : [ '.ts' , '.tsx' , '.js' ] ,
295+ } ,
292296 } ,
293- } ,
297+ plugins :
298+ algolia && config . algolia
299+ ? [
300+ new rspack . DefinePlugin ( {
301+ 'process.env.ALGOLIA_APP_ID' : JSON . stringify (
302+ config . algolia . appId ,
303+ ) ,
304+ 'process.env.ALGOLIA_API_KEY' : JSON . stringify (
305+ config . algolia . apiKey ,
306+ ) ,
307+ 'process.env.ALGOLIA_INDEX_NAME' : JSON . stringify (
308+ config . algolia . indexName ,
309+ ) ,
310+ } ) ,
311+ ]
312+ : undefined ,
313+ } )
294314 } ,
295315 } ,
296316 } ,
@@ -323,6 +343,7 @@ export async function loadConfig(
323343 outDir,
324344 redirect,
325345 editRepo,
346+ algolia,
326347 } : GlobalCliOptions = { } ,
327348) : Promise < {
328349 config : UserConfig
@@ -402,6 +423,7 @@ export async function loadConfig(
402423 exclude,
403424 redirect,
404425 editRepo,
426+ algolia,
405427 } )
406428
407429 base = commonConfig . base !
0 commit comments