Skip to content

Commit 4d30771

Browse files
authored
Fix issue with escape-string-regexp in IE11 (vercel#32708)
* Fix issue with escape-string-regexp in IE11 * remove escape-string-regexp dep * Update compiled * Link to original repo
1 parent c9c3183 commit 4d30771

File tree

14 files changed

+14
-37
lines changed

14 files changed

+14
-37
lines changed

packages/next/build/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { isMatch } from 'next/dist/compiled/micromatch'
55
import { promises, writeFileSync } from 'fs'
66
import { Worker } from '../lib/worker'
77
import devalue from 'next/dist/compiled/devalue'
8-
import escapeStringRegexp from 'next/dist/compiled/escape-string-regexp'
8+
import { escapeStringRegexp } from '../shared/lib/escape-regexp'
99
import findUp from 'next/dist/compiled/find-up'
1010
import { nanoid } from 'next/dist/compiled/nanoid/index.cjs'
1111
import { pathToRegexp } from 'next/dist/compiled/path-to-regexp'

packages/next/build/webpack-config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import semver from 'next/dist/compiled/semver'
66
import { webpack } from 'next/dist/compiled/webpack/webpack'
77
import type { webpack5 } from 'next/dist/compiled/webpack/webpack'
88
import path, { join as pathJoin, relative as relativePath } from 'path'
9-
import escapeRegExp from 'next/dist/compiled/escape-string-regexp'
9+
import { escapeStringRegexp } from '../shared/lib/escape-regexp'
1010
import {
1111
DOT_NEXT_ALIAS,
1212
NEXT_PROJECT_ROOT,
@@ -1694,7 +1694,7 @@ export default async function getBaseWebpackConfig(
16941694
webpackConfig = await buildConfiguration(webpackConfig, {
16951695
supportedBrowsers,
16961696
rootDirectory: dir,
1697-
customAppFile: new RegExp(escapeRegExp(path.join(pagesDir, `_app`))),
1697+
customAppFile: new RegExp(escapeStringRegexp(path.join(pagesDir, `_app`))),
16981698
isDevelopment: dev,
16991699
isServer,
17001700
webServerRuntime,

packages/next/build/webpack/loaders/next-serverless-loader/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import devalue from 'next/dist/compiled/devalue'
2-
import escapeRegexp from 'next/dist/compiled/escape-string-regexp'
32
import { join } from 'path'
43
import { parse } from 'querystring'
54
import { webpack } from 'next/dist/compiled/webpack/webpack'
65
import { API_ROUTE } from '../../../../lib/constants'
76
import { isDynamicRoute } from '../../../../shared/lib/router/utils'
7+
import { escapeStringRegexp } from '../../../../shared/lib/escape-regexp'
88
import { __ApiPreviewProps } from '../../../../server/api-utils'
99
import {
1010
BUILD_MANIFEST,
@@ -62,7 +62,7 @@ const nextServerlessLoader: webpack.loader.Loader = function () {
6262
)
6363
const routesManifest = join(distDir, ROUTES_MANIFEST).replace(/\\/g, '/')
6464

65-
const escapedBuildId = escapeRegexp(buildId)
65+
const escapedBuildId = escapeStringRegexp(buildId)
6666
const pageIsDynamicRoute = isDynamicRoute(page)
6767

6868
const encodedPreviewProps = devalue(

packages/next/compiled/chalk/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/next/compiled/escape-string-regexp/LICENSE

Lines changed: 0 additions & 9 deletions
This file was deleted.

packages/next/compiled/escape-string-regexp/index.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/next/compiled/escape-string-regexp/package.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/next/lib/load-custom-routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import chalk from 'next/dist/compiled/chalk'
22
import { parse as parseUrl } from 'url'
33
import { NextConfig } from '../server/config'
44
import * as pathToRegexp from 'next/dist/compiled/path-to-regexp'
5-
import escapeStringRegexp from 'next/dist/compiled/escape-string-regexp'
5+
import { escapeStringRegexp } from '../shared/lib/escape-regexp'
66
import {
77
PERMANENT_REDIRECT_STATUS,
88
TEMPORARY_REDIRECT_STATUS,

packages/next/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@
194194
"debug": "4.1.1",
195195
"devalue": "2.0.1",
196196
"domain-browser": "4.19.0",
197-
"escape-string-regexp": "2.0.0",
198197
"etag": "1.8.1",
199198
"events": "3.3.0",
200199
"find-cache-dir": "3.3.1",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// regexp from https://github.com/sindresorhus/escape-string-regexp
2+
export function escapeStringRegexp(str: string) {
3+
return str.replace(/[|\\{}()[\]^$+*?.-]/g, '\\$&')
4+
}

0 commit comments

Comments
 (0)