diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index d7b0ee56a1e8a5..892f6921745989 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -25,7 +25,7 @@ function shouldUseESMLoader(mainPath) { if (userLoader) return true; const esModuleSpecifierResolution = - getOptionValue('--es-module-specifier-resolution'); + getOptionValue('--experimental-specifier-resolution'); if (esModuleSpecifierResolution === 'node') return true; // Determine the module format of the main diff --git a/src/node_options.cc b/src/node_options.cc index 671cdc591e0053..abbb7bc82ab599 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -92,20 +92,7 @@ void EnvironmentOptions::CheckOptions(std::vector* errors) { } } - if (!es_module_specifier_resolution.empty()) { - if (!experimental_specifier_resolution.empty()) { - errors->push_back( - "bad option: cannot use --es-module-specifier-resolution" - " and --experimental-specifier-resolution at the same time"); - } else { - experimental_specifier_resolution = es_module_specifier_resolution; - if (experimental_specifier_resolution != "node" && - experimental_specifier_resolution != "explicit") { - errors->push_back( - "invalid value for --es-module-specifier-resolution"); - } - } - } else if (!experimental_specifier_resolution.empty()) { + if (!experimental_specifier_resolution.empty()) { if (experimental_specifier_resolution != "node" && experimental_specifier_resolution != "explicit") { errors->push_back( @@ -368,10 +355,8 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { "either 'explicit' (default) or 'node'", &EnvironmentOptions::experimental_specifier_resolution, kAllowedInEnvironment); - AddOption("--es-module-specifier-resolution", - "", - &EnvironmentOptions::es_module_specifier_resolution, - kAllowedInEnvironment); + AddAlias("--es-module-specifier-resolution", + "--experimental-specifier-resolution"); AddOption("--no-deprecation", "silence deprecation warnings", &EnvironmentOptions::no_deprecation, diff --git a/src/node_options.h b/src/node_options.h index 3258d4b3f0df0c..bd63fcb0485c77 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -105,7 +105,6 @@ class EnvironmentOptions : public Options { bool experimental_json_modules = false; bool experimental_modules = false; std::string experimental_specifier_resolution; - std::string es_module_specifier_resolution; bool experimental_wasm_modules = false; bool experimental_import_meta_resolve = false; std::string module_type; diff --git a/test/es-module/test-esm-specifiers-both-flags.mjs b/test/es-module/test-esm-specifiers-both-flags.mjs deleted file mode 100644 index a434684589dc07..00000000000000 --- a/test/es-module/test-esm-specifiers-both-flags.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import { mustCall } from '../common/index.mjs'; -import { exec } from 'child_process'; -import assert from 'assert'; - -const expectedError = - 'cannot use --es-module-specifier-resolution ' + - 'and --experimental-specifier-resolution at the same time'; - -const flags = '--es-module-specifier-resolution=node ' + - '--experimental-specifier-resolution=node'; - -exec(`${process.execPath} ${flags}`, mustCall((error) => { - assert(error.message.includes(expectedError)); -})); diff --git a/test/es-module/test-esm-specifiers.mjs b/test/es-module/test-esm-specifiers.mjs index 5e436f21b74cc6..8451a6a703bb65 100644 --- a/test/es-module/test-esm-specifiers.mjs +++ b/test/es-module/test-esm-specifiers.mjs @@ -49,9 +49,14 @@ main().catch(mustNotCall); '../../fixtures/es-module-specifiers', item, ); - spawn(process.execPath, - ['--es-module-specifier-resolution=node', modulePath], - { stdio: 'inherit' }).on('exit', (code) => { - assert.strictEqual(code, 0); + [ + '--experimental-specifier-resolution', + '--es-module-specifier-resolution' + ].forEach((option) => { + spawn(process.execPath, + [`${option}=node`, modulePath], + { stdio: 'inherit' }).on('exit', (code) => { + assert.strictEqual(code, 0); + }); }); });