MCPcopy
hub / github.com/vercel/next.js / externalHandler

Function externalHandler

packages/next/next-runtime.webpack-config.js:126–160  ·  view source on GitHub ↗
({ context, request, getResolve }, callback)

Source from the content-addressed store, hash-verified

124 */
125module.exports = ({ dev, turbo, bundleType, experimental, ...rest }) => {
126 const externalHandler = ({ context, request, getResolve }, callback) => {
127 ;(async () => {
128 if (
129 request.match(
130 /next[/\\]dist[/\\]compiled[/\\](babel|webpack|source-map|semver|jest-worker|stacktrace-parser|@ampproject\/toolbox-optimizer)/
131 )
132 ) {
133 callback(null, 'commonjs ' + request)
134 return
135 }
136
137 if (request.match(/(server\/image-optimizer|experimental\/testmode)/)) {
138 callback(null, 'commonjs ' + request)
139 return
140 }
141
142 if (request.match(/\.external(\.js)?$/)) {
143 const resolve = getResolve()
144 const resolved = await resolve(context, request)
145 const relative = path.relative(
146 path.join(__dirname, '..'),
147 resolved.replace('esm' + path.sep, '')
148 )
149 callback(null, `commonjs ${relative}`)
150 } else {
151 const regexMatch = Object.keys(externalsRegexMap).find((regex) =>
152 new RegExp(regex).test(request)
153 )
154 if (regexMatch) {
155 return callback(null, 'commonjs ' + externalsRegexMap[regexMatch])
156 }
157 callback()
158 }
159 })()
160 }
161
162 const bundledReactChannel = experimental ? '-experimental' : ''
163

Callers

nothing calls this directly

Calls 8

matchMethod · 0.65
replaceMethod · 0.65
keysMethod · 0.65
testMethod · 0.65
callbackFunction · 0.50
resolveFunction · 0.50
joinMethod · 0.45
findMethod · 0.45

Tested by

no test coverage detected