diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 6b1e3fb2132ed7..93ede414191523 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -48,6 +48,7 @@ function prepareMainThreadExecution(expandArgv1 = false) { initializeDeprecations(); initializeFrozenIntrinsics(); + initializeCJSLoader(); initializeESMLoader(); loadPreloadModules(); } @@ -336,6 +337,10 @@ function initializePolicy() { } } +function initializeCJSLoader() { + require('internal/modules/cjs/loader')._initPaths(); +} + function initializeESMLoader() { const experimentalModules = getOptionValue('--experimental-modules'); const experimentalVMModules = getOptionValue('--experimental-vm-modules'); @@ -397,5 +402,6 @@ module.exports = { loadPreloadModules, setupTraceCategoryState, setupInspectorHooks, - initializeReport + initializeReport, + initializeCJSLoader }; diff --git a/lib/internal/main/check_syntax.js b/lib/internal/main/check_syntax.js index 6d335565abbbb8..8b7a85e29d200d 100644 --- a/lib/internal/main/check_syntax.js +++ b/lib/internal/main/check_syntax.js @@ -18,6 +18,11 @@ const { stripShebang, stripBOM } = require('internal/modules/cjs/helpers'); +const { + _resolveFilename: resolveCJSModuleName, + wrap: wrapCJSModule +} = require('internal/modules/cjs/loader'); + // TODO(joyeecheung): not every one of these are necessary prepareMainThreadExecution(true); @@ -26,12 +31,8 @@ if (process.argv[1] && process.argv[1] !== '-') { const path = require('path'); process.argv[1] = path.resolve(process.argv[1]); - // This has to be done after prepareMainThreadExecution because it - // relies on process.execPath - const CJSModule = require('internal/modules/cjs/loader'); - // Read the source. - const filename = CJSModule._resolveFilename(process.argv[1]); + const filename = resolveCJSModuleName(process.argv[1]); const fs = require('fs'); const source = fs.readFileSync(filename, 'utf-8'); @@ -51,10 +52,6 @@ function checkSyntax(source, filename) { // Remove Shebang. source = stripShebang(source); - // This has to be done after prepareMainThreadExecution because it - // relies on process.execPath - const CJSModule = require('internal/modules/cjs/loader'); - const { getOptionValue } = require('internal/options'); const experimentalModules = getOptionValue('--experimental-modules'); if (experimentalModules) { @@ -76,7 +73,7 @@ function checkSyntax(source, filename) { // Remove BOM. source = stripBOM(source); // Wrap it. - source = CJSModule.wrap(source); + source = wrapCJSModule(source); // Compile the script, this will throw if it fails. new vm.Script(source, { displayErrors: true, filename }); } diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js index dd6a9426fffc1e..46152f6742e5d3 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js @@ -12,6 +12,7 @@ const { setupWarningHandler, setupDebugEnv, initializeDeprecations, + initializeCJSLoader, initializeESMLoader, initializeFrozenIntrinsics, initializeReport, @@ -104,6 +105,7 @@ port.on('message', (message) => { } initializeDeprecations(); initializeFrozenIntrinsics(); + initializeCJSLoader(); initializeESMLoader(); loadPreloadModules(); publicWorker.parentPort = publicPort; diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 20ca6d113c0071..a1e5046d406a1a 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -893,8 +893,6 @@ Module._preloadModules = function(requests) { parent.require(requests[n]); }; -Module._initPaths(); - // Backwards compatibility Module.Module = Module;