From 8dea7838058dae356a664be01285b46bc641c8d1 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Wed, 26 Jul 2023 22:10:58 -0700 Subject: [PATCH] fix: do not resolve electron entrypoints on disk (#39247) --- patches/node/.patches | 1 + ..._do_not_resolve_electron_entrypoints.patch | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 patches/node/fix_do_not_resolve_electron_entrypoints.patch diff --git a/patches/node/.patches b/patches/node/.patches index dab529ec70d6..5b0d4b546ad0 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -37,3 +37,4 @@ chore_remove_--no-harmony-atomics_related_code.patch fix_account_for_createexternalizablestring_v8_global.patch fix_wunreachable-code_warning_in_ares_init_rand_engine.patch fix_-wshadow_warning.patch +fix_do_not_resolve_electron_entrypoints.patch diff --git a/patches/node/fix_do_not_resolve_electron_entrypoints.patch b/patches/node/fix_do_not_resolve_electron_entrypoints.patch new file mode 100644 index 000000000000..8d700b8fab6b --- /dev/null +++ b/patches/node/fix_do_not_resolve_electron_entrypoints.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Wed, 26 Jul 2023 17:03:15 -0700 +Subject: fix: do not resolve electron entrypoints + +This wastes fs cycles and can result in strange behavior if this path actually exists on disk + +diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js +index 5a50d5d6afab6e6648f72a1c0efa1df4cd80bcd9..0be45309028b00a6957ee473322a9452a7fa7d67 100644 +--- a/lib/internal/modules/run_main.js ++++ b/lib/internal/modules/run_main.js +@@ -13,6 +13,12 @@ const { + } = require('internal/modules/esm/handle_process_exit'); + + function resolveMainPath(main) { ++ // For built-in modules used as the main entry point we _never_ ++ // want to waste cycles resolving them to file paths on disk ++ // that actually might exist ++ if (typeof main === 'string' && main.startsWith('electron/js2c')) { ++ return main; ++ } + // Note extension resolution for the main entry point can be deprecated in a + // future major. + // Module._findPath is monkey-patchable here.