diff --git a/.changeset/cold-rockets-brake.md b/.changeset/cold-rockets-brake.md new file mode 100644 index 0000000000..944270e31b --- /dev/null +++ b/.changeset/cold-rockets-brake.md @@ -0,0 +1,5 @@ +--- +'nextra': patch +--- + +use `findPagesDir` from `next/dist/lib/find-pages-dir` diff --git a/packages/nextra/src/loader.ts b/packages/nextra/src/loader.ts index 6f8c1f635d..72fdd3eedd 100644 --- a/packages/nextra/src/loader.ts +++ b/packages/nextra/src/loader.ts @@ -5,11 +5,12 @@ import grayMatter from 'gray-matter' import slash from 'slash' import { LoaderContext } from 'webpack' import { Repository } from '@napi-rs/simple-git' +import { findPagesDir } from 'next/dist/lib/find-pages-dir.js' import { addPage } from './content-dump' import { parseFileName } from './utils' import { compileMdx } from './compile' -import { getPageMap, findPagesDir } from './page-map' +import { getPageMap } from './page-map' import { collectFiles, collectMdx } from './plugin' import { IS_PRODUCTION, @@ -21,7 +22,7 @@ import { // TODO: create this as a webpack plugin. const indexContentEmitted = new Set() -const pagesDir = path.resolve(findPagesDir()) +const pagesDir = findPagesDir(process.cwd()).pages const [repository, gitRoot] = (function () { try { diff --git a/packages/nextra/src/page-map.ts b/packages/nextra/src/page-map.ts index 2ae4c8bc82..1a2a881a5e 100644 --- a/packages/nextra/src/page-map.ts +++ b/packages/nextra/src/page-map.ts @@ -1,18 +1,8 @@ import { PageMapItem } from './types' -import { parseFileName, existsSync } from './utils' +import { parseFileName } from './utils' import path from 'path' import filterRouteLocale from './filter-route-locale' -export function findPagesDir(dir = process.cwd()): string { - // prioritize ./pages over ./src/pages - if (existsSync(path.join(dir, 'pages'))) return 'pages' - if (existsSync(path.join(dir, 'src/pages'))) return 'src/pages' - - throw new Error( - "> Couldn't find a `pages` directory. Please create one under the project root" - ) -} - export function getPageMap( currentResourcePath: string, pageMap: PageMapItem[], diff --git a/packages/nextra/src/plugin.ts b/packages/nextra/src/plugin.ts index 1ecee5076f..3d59d5932a 100644 --- a/packages/nextra/src/plugin.ts +++ b/packages/nextra/src/plugin.ts @@ -5,8 +5,9 @@ import { parseFileName, parseJsonFile } from './utils' import path from 'path' import slash from 'slash' import grayMatter from 'gray-matter' -import { findPagesDir } from './page-map' +import { findPagesDir } from 'next/dist/lib/find-pages-dir.js' import { Compiler } from 'webpack' + import { restoreCache } from './content-dump' import { MARKDOWN_EXTENSION_REGEX } from './constants' @@ -109,9 +110,8 @@ export class NextraPlugin { // Restore the search data from the cache. restoreCache() } - const result = await collectFiles( - path.join(process.cwd(), findPagesDir()), + findPagesDir(process.cwd()).pages, '/' ) pageMapCache.set(result)