diff --git a/packages/docusaurus/src/server/themes/alias.ts b/packages/docusaurus/src/server/themes/alias.ts index 883d29df1c..0310f2dff6 100644 --- a/packages/docusaurus/src/server/themes/alias.ts +++ b/packages/docusaurus/src/server/themes/alias.ts @@ -10,6 +10,7 @@ import fs from 'fs-extra'; import path from 'path'; import {fileToPath, posixPath, normalizeUrl} from '@docusaurus/utils'; import {ThemeAlias} from '@docusaurus/types'; +import {sortBy} from 'lodash'; export default function themeAlias( themePath: string, @@ -23,9 +24,15 @@ export default function themeAlias( cwd: themePath, }); + // See https://github.com/facebook/docusaurus/pull/3922 + // ensure @theme/NavbarItem alias is created after @theme/NavbarItem/LocaleDropdown + const sortedThemeComponentFiles = sortBy(themeComponentFiles, (file) => + file.endsWith('/index.js'), + ); + const aliases: ThemeAlias = {}; - themeComponentFiles.forEach((relativeSource) => { + sortedThemeComponentFiles.forEach((relativeSource) => { const filePath = path.join(themePath, relativeSource); const fileName = fileToPath(relativeSource);