Skip to content

Commit

Permalink
Only require nextjs-require-cache-hot-reloader related API in dev mode
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Jun 26, 2023
1 parent 57ab281 commit c0c056d
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 40 deletions.
48 changes: 31 additions & 17 deletions packages/next/src/server/lib/render-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@ import '../require-hook'

import next from '../next'
import { warn } from '../../build/output/log'
import {
deleteCache as _deleteCache,
deleteAppClientCache as _deleteAppClientCache,
} from '../../build/webpack/plugins/nextjs-require-cache-hot-reloader'
import { clearModuleContext as _clearModuleContext } from '../web/sandbox/context'
import { getFreePort } from '../lib/worker-utils'
export const WORKER_SELF_EXIT_CODE = 77

Expand All @@ -28,18 +23,6 @@ let result:
hostname: string
}

export function clearModuleContext(target: string, content: string) {
_clearModuleContext(target, content)
}

export function deleteAppClientCache() {
_deleteAppClientCache()
}

export function deleteCache(filePath: string) {
_deleteCache(filePath)
}

export async function initialize(opts: {
dir: string
port: number
Expand Down Expand Up @@ -140,3 +123,34 @@ export async function initialize(opts: {
server.listen(await getFreePort(), '0.0.0.0')
})
}

if (process.env.NODE_ENV === 'development') {
const {
deleteCache: _deleteCache,
deleteAppClientCache: _deleteAppClientCache,
} = require('../../build/webpack/plugins/nextjs-require-cache-hot-reloader')
const {
clearModuleContext: _clearModuleContext,
} = require('../web/sandbox/context')

exports.clearModuleContext = function clearModuleContext(
target: string,
content: string
) {
_clearModuleContext(target, content)
}

exports.deleteAppClientCache = function deleteAppClientCache() {
_deleteAppClientCache()
}

exports.deleteCache = function deleteCache(filePath: string) {
_deleteCache(filePath)
}
}

export type {
deleteCache,
deleteAppClientCache,
} from '../../build/webpack/plugins/nextjs-require-cache-hot-reloader'
export type { clearModuleContext } from '../web/sandbox/context'
48 changes: 25 additions & 23 deletions packages/next/src/server/next-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -310,31 +310,33 @@ export default class NextNodeServer extends BaseServer {
process.exit(1)
}
})
;(global as any)._nextDeleteCache = (filePath: string) => {
try {
this.renderWorkers?.pages?.deleteCache(filePath)
this.renderWorkers?.app?.deleteCache(filePath)
} catch (err) {
console.error(err)
if (process.env.NODE_ENV === 'development') {
;(global as any)._nextDeleteCache = (filePath: string) => {
try {
this.renderWorkers?.pages?.deleteCache(filePath)
this.renderWorkers?.app?.deleteCache(filePath)
} catch (err) {
console.error(err)
}
}
}
;(global as any)._nextDeleteAppClientCache = () => {
try {
this.renderWorkers?.pages?.deleteAppClientCache()
this.renderWorkers?.app?.deleteAppClientCache()
} catch (err) {
console.error(err)
;(global as any)._nextDeleteAppClientCache = () => {
try {
this.renderWorkers?.pages?.deleteAppClientCache()
this.renderWorkers?.app?.deleteAppClientCache()
} catch (err) {
console.error(err)
}
}
}
;(global as any)._nextClearModuleContext = (
targetPath: any,
content: any
) => {
try {
this.renderWorkers?.pages?.clearModuleContext(targetPath, content)
this.renderWorkers?.app?.clearModuleContext(targetPath, content)
} catch (err) {
console.error(err)
;(global as any)._nextClearModuleContext = (
targetPath: any,
content: any
) => {
try {
this.renderWorkers?.pages?.clearModuleContext(targetPath, content)
this.renderWorkers?.app?.clearModuleContext(targetPath, content)
} catch (err) {
console.error(err)
}
}
}
}
Expand Down

0 comments on commit c0c056d

Please sign in to comment.