mirror of https://github.com/nodejs/node.git
module: fix specifier resolution option value
Fixes: https://github.com/nodejs/node/issues/35095 PR-URL: https://github.com/nodejs/node/pull/35098 Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>pull/35098/head
parent
b7f3e83086
commit
22c52aac6a
|
@ -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
|
||||
|
|
|
@ -92,20 +92,7 @@ void EnvironmentOptions::CheckOptions(std::vector<std::string>* 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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}));
|
|
@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue