From f6eb5759a57b19d0a93af674b7e7ba64faf94695 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Sat, 4 Jan 2020 14:43:22 +0100 Subject: [PATCH] Remove rewriteUrlForNextExport from bundles when option is not enabled --- packages/next/client/link.tsx | 3 ++- packages/next/next-server/lib/router/router.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/next/client/link.tsx b/packages/next/client/link.tsx index af8ce7849671..4cca39b3a0a4 100644 --- a/packages/next/client/link.tsx +++ b/packages/next/client/link.tsx @@ -3,7 +3,6 @@ declare const __NEXT_DATA__: any import { resolve, parse, UrlObject } from 'url' import React, { Component, Children } from 'react' import Router from './router' -import { rewriteUrlForNextExport } from '../next-server/lib/router/rewrite-url-for-export' import { execOnce, formatWithValidation, @@ -264,6 +263,8 @@ class Link extends Component { // Add the ending slash to the paths. So, we can serve the // "/index.html" directly. if (process.env.__NEXT_EXPORT_TRAILING_SLASH) { + const rewriteUrlForNextExport = require('../next-server/lib/router/rewrite-url-for-export') + .rewriteUrlForNextExport if ( props.href && typeof __NEXT_DATA__ !== 'undefined' && diff --git a/packages/next/next-server/lib/router/router.ts b/packages/next/next-server/lib/router/router.ts index a320811a862e..311cec1d1387 100644 --- a/packages/next/next-server/lib/router/router.ts +++ b/packages/next/next-server/lib/router/router.ts @@ -13,7 +13,6 @@ import { NextPageContext, SUPPORTS_PERFORMANCE_USER_TIMING, } from '../utils' -import { rewriteUrlForNextExport } from './rewrite-url-for-export' import { isDynamicRoute } from './utils/is-dynamic' import { getRouteMatcher } from './utils/route-matcher' import { getRouteRegex } from './utils/route-regex' @@ -154,7 +153,13 @@ export default class Router implements BaseRouter { // @deprecated backwards compatibility even though it's a private method. static _rewriteUrlForNextExport(url: string): string { - return rewriteUrlForNextExport(url) + if (process.env.__NEXT_EXPORT_TRAILING_SLASH) { + const rewriteUrlForNextExport = require('./rewrite-url-for-export') + .rewriteUrlForNextExport + return rewriteUrlForNextExport(url) + } else { + return url + } } onPopState = (e: PopStateEvent): void => { @@ -275,6 +280,8 @@ export default class Router implements BaseRouter { // Add the ending slash to the paths. So, we can serve the // "/index.html" directly for the SSR page. if (process.env.__NEXT_EXPORT_TRAILING_SLASH) { + const rewriteUrlForNextExport = require('./rewrite-url-for-export') + .rewriteUrlForNextExport // @ts-ignore this is temporarily global (attached to window) if (__NEXT_DATA__.nextExport) { as = rewriteUrlForNextExport(as)