@@ -234,7 +234,7 @@ let statCache = null;
234234 *
235235 * See more {@link Module._load}
236236 */
237- function wrapModuleLoad ( request , parent , isMain ) {
237+ function wrapModuleLoad ( request , parent , isMain , options ) {
238238 const logLabel = `[${ parent ?. id || '' } ] [${ request } ]` ;
239239 const traceLabel = `require('${ request } ')` ;
240240 const channel = onRequire ( ) ;
@@ -247,11 +247,11 @@ function wrapModuleLoad(request, parent, isMain) {
247247 __proto__ : null ,
248248 parentFilename : parent ?. filename ,
249249 id : request ,
250- } , Module , request , parent , isMain ) ;
250+ } , Module , request , parent , isMain , options ) ;
251251 }
252252 // No subscribers, skip the wrapping to avoid clobbering stack traces
253253 // and debugging steps.
254- return Module . _load ( request , parent , isMain ) ;
254+ return Module . _load ( request , parent , isMain , options ) ;
255255 } finally {
256256 endTimer ( logLabel , traceLabel ) ;
257257 }
@@ -1015,9 +1015,10 @@ function getExportsForCircularRequire(module) {
10151015 * @param {string } specifier
10161016 * @param {Module|undefined } parent
10171017 * @param {boolean } isMain
1018+ * @param {boolean } shouldSkipModuleHooks
10181019 * @returns {{url?: string, format?: string, parentURL?: string, filename: string} }
10191020 */
1020- function resolveForCJSWithHooks ( specifier , parent , isMain ) {
1021+ function resolveForCJSWithHooks ( specifier , parent , isMain , shouldSkipModuleHooks ) {
10211022 let defaultResolvedURL ;
10221023 let defaultResolvedFilename ;
10231024 let format ;
@@ -1040,7 +1041,7 @@ function resolveForCJSWithHooks(specifier, parent, isMain) {
10401041 }
10411042
10421043 // Fast path: no hooks, just return simple results.
1043- if ( ! resolveHooks . length ) {
1044+ if ( ! resolveHooks . length || shouldSkipModuleHooks ) {
10441045 const filename = defaultResolveImpl ( specifier , parent , isMain ) ;
10451046 return { __proto__ : null , url : defaultResolvedURL , filename, format } ;
10461047 }
@@ -1093,7 +1094,7 @@ function resolveForCJSWithHooks(specifier, parent, isMain) {
10931094 }
10941095
10951096 const result = { __proto__ : null , url, format, filename, parentURL } ;
1096- debug ( 'resolveForCJSWithHooks' , specifier , parent ?. id , '->' , result ) ;
1097+ debug ( 'resolveForCJSWithHooks' , specifier , parent ?. id , isMain , shouldSkipModuleHooks , '->' , result ) ;
10971098 return result ;
10981099}
10991100
@@ -1186,8 +1187,10 @@ function loadBuiltinWithHooks(id, url, format) {
11861187 * @param {string } request Specifier of module to load via `require`
11871188 * @param {Module } parent Absolute path of the module importing the child
11881189 * @param {boolean } isMain Whether the module is the main entry point
1190+ * @param {object|undefined } options Additional options for loading the module
1191+ * @returns {object }
11891192 */
1190- Module . _load = function ( request , parent , isMain ) {
1193+ Module . _load = function ( request , parent , isMain , options = kEmptyObject ) {
11911194 let relResolveCacheIdentifier ;
11921195 if ( parent ) {
11931196 debug ( 'Module._load REQUEST %s parent: %s' , request , parent . id ) ;
@@ -1210,7 +1213,7 @@ Module._load = function(request, parent, isMain) {
12101213 }
12111214 }
12121215
1213- const resolveResult = resolveForCJSWithHooks ( request , parent , isMain ) ;
1216+ const resolveResult = resolveForCJSWithHooks ( request , parent , isMain , options . shouldSkipModuleHooks ) ;
12141217 let { format } = resolveResult ;
12151218 const { url, filename } = resolveResult ;
12161219
0 commit comments