diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index da9412c302..0bfbb2cbb5 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -471,7 +471,7 @@ export async function loadConfig({ let configExport: RsbuildConfigExport; - if (/\.(?:js|mjs|cjs)$/.test(configFilePath) || loader === 'native') { + if (loader === 'native' || /\.(?:js|mjs|cjs)$/.test(configFilePath)) { try { const exportModule = await import(`${configFilePath}?t=${Date.now()}`); configExport = exportModule.default ? exportModule.default : exportModule; diff --git a/packages/core/src/provider/initConfigs.ts b/packages/core/src/provider/initConfigs.ts index 86a64e42a0..b4c966abac 100644 --- a/packages/core/src/provider/initConfigs.ts +++ b/packages/core/src/provider/initConfigs.ts @@ -151,6 +151,14 @@ const initEnvironmentConfigs = ( }; }; +const validateRsbuildConfig = (config: NormalizedConfig) => { + if (config.server.base && !config.server.base.startsWith('/')) { + throw new Error( + `[rsbuild:config] The "server.base" option should start with a slash, for example: "/base"`, + ); + } +}; + export async function initRsbuildConfig({ context, pluginManager, @@ -215,6 +223,7 @@ export async function initRsbuildConfig({ await updateEnvironmentContext(context, environments); updateContextByNormalizedConfig(context); + validateRsbuildConfig(context.normalizedConfig); return context.normalizedConfig; }