Skip to content

Commit

Permalink
fix(nextjs): Match loader files exactly (#6013)
Browse files Browse the repository at this point in the history
  • Loading branch information
lforst committed Oct 25, 2022
1 parent c60b6cb commit ac03a39
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions packages/nextjs/src/config/webpack.ts
Expand Up @@ -86,18 +86,17 @@ export function constructWebpackConfigFunction(
// if `pages` is present in the root directory"
// - https://nextjs.org/docs/advanced-features/src-directory
const shouldIncludeSrcDirectory = !fs.existsSync(path.resolve(projectDir, 'pages'));
const pagesDirectory = shouldIncludeSrcDirectory // We're intentionally not including slashes in the paths because we wanne let node do the path resolution for Windows
? path.resolve(projectDir, 'src', 'pages')
: path.resolve(projectDir, 'pages');

// Default page extensions per https://github.com/vercel/next.js/blob/f1dbc9260d48c7995f6c52f8fbcc65f08e627992/packages/next/server/config-shared.ts#L161
const pageExtensions = userNextConfig.pageExtensions || ['tsx', 'ts', 'jsx', 'js'];
const pageExtensionRegex = pageExtensions.map(escapeStringForRegex).join('|');

newConfig.module.rules.push({
// Nextjs allows the `pages` folder to optionally live inside a `src` folder
test: new RegExp(
`${escapeStringForRegex(projectDir)}${
shouldIncludeSrcDirectory ? '/src' : ''
}/pages/.*\\.(${pageExtensionRegex})`,
),
test: new RegExp(`^${escapeStringForRegex(pagesDirectory)}.*\\.(${pageExtensionRegex})$`),
use: [
{
loader: path.resolve(__dirname, 'loaders/proxyLoader.js'),
Expand Down

0 comments on commit ac03a39

Please sign in to comment.