src: rename --loader to --experimental-loader
Renames the `--loader` cli argument to `--experimental-loader`. This is to clearly indicate the esm loader feature as experimental even after esm is no longer experimental. Also minorly alters the `--experimental-loader` docs to say that the passed loader can be an esm module. Refs: https://github.com/nodejs/modules/issues/351#issuecomment-535189524 PR-URL: https://github.com/nodejs/node/pull/29752 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
1c5a3f0d09
commit
15fb02a515
@ -368,12 +368,13 @@ Specify ways of the inspector web socket url exposure.
|
||||
By default inspector websocket url is available in stderr and under `/json/list`
|
||||
endpoint on `http://host:port/json/list`.
|
||||
|
||||
### `--loader=file`
|
||||
### `--experimental-loader=module`
|
||||
<!-- YAML
|
||||
added: v9.0.0
|
||||
-->
|
||||
|
||||
Specify the `file` of the custom [experimental ECMAScript Module][] loader.
|
||||
Specify the `module` of a custom [experimental ECMAScript Module][] loader.
|
||||
`module` may be either a path to a file, or an ECMAScript Module name.
|
||||
|
||||
### `--max-http-header-size=size`
|
||||
<!-- YAML
|
||||
@ -981,6 +982,7 @@ Node.js options that are allowed are:
|
||||
* `--enable-fips`
|
||||
* `--es-module-specifier-resolution`
|
||||
* `--experimental-exports`
|
||||
* `--experimental-loader`
|
||||
* `--experimental-modules`
|
||||
* `--experimental-policy`
|
||||
* `--experimental-repl-await`
|
||||
@ -998,7 +1000,6 @@ Node.js options that are allowed are:
|
||||
* `--inspect-port`, `--debug-port`
|
||||
* `--inspect-publish-uid`
|
||||
* `--inspect`
|
||||
* `--loader`
|
||||
* `--max-http-header-size`
|
||||
* `--napi-modules`
|
||||
* `--no-deprecation`
|
||||
|
@ -632,7 +632,7 @@ would provide the exports interface for the instantiation of `module.wasm`.
|
||||
<!-- type=misc -->
|
||||
|
||||
To customize the default module resolution, loader hooks can optionally be
|
||||
provided via a `--loader ./loader-name.mjs` argument to Node.js.
|
||||
provided via a `--experimental-loader ./loader-name.mjs` argument to Node.js.
|
||||
|
||||
When hooks are used they only apply to ES module loading and not to any
|
||||
CommonJS modules loaded.
|
||||
@ -731,7 +731,7 @@ export async function resolve(specifier,
|
||||
With this loader, running:
|
||||
|
||||
```console
|
||||
NODE_OPTIONS='--experimental-modules --loader ./custom-loader.mjs' node x.js
|
||||
NODE_OPTIONS='--experimental-modules --experimental-loader ./custom-loader.mjs' node x.js
|
||||
```
|
||||
|
||||
would load the module `x.js` as an ES module with relative resolution support
|
||||
|
@ -191,9 +191,9 @@ Default is
|
||||
V8 Inspector integration allows attaching Chrome DevTools and IDEs to Node.js instances for debugging and profiling.
|
||||
It uses the Chrome DevTools Protocol.
|
||||
.
|
||||
.It Fl -loader Ns = Ns Ar file
|
||||
.It Fl -experimental-loader Ns = Ns Ar module
|
||||
Specify the
|
||||
.Ar file
|
||||
.Ar module
|
||||
as a custom loader, to load
|
||||
.Fl -experimental-modules .
|
||||
.
|
||||
|
@ -400,12 +400,12 @@ function initializeESMLoader() {
|
||||
// track of for different ESM modules.
|
||||
setInitializeImportMetaObjectCallback(esm.initializeImportMetaObject);
|
||||
setImportModuleDynamicallyCallback(esm.importModuleDynamicallyCallback);
|
||||
const userLoader = getOptionValue('--loader');
|
||||
// If --loader is specified, create a loader with user hooks. Otherwise
|
||||
// create the default loader.
|
||||
const userLoader = getOptionValue('--experimental-loader');
|
||||
// If --experimental-loader is specified, create a loader with user hooks.
|
||||
// Otherwise create the default loader.
|
||||
if (userLoader) {
|
||||
const { emitExperimentalWarning } = require('internal/util');
|
||||
emitExperimentalWarning('--loader');
|
||||
emitExperimentalWarning('--experimental-loader');
|
||||
}
|
||||
esm.initializeLoader(process.cwd(), userLoader);
|
||||
}
|
||||
|
@ -114,7 +114,8 @@ void PerIsolateOptions::CheckOptions(std::vector<std::string>* errors) {
|
||||
|
||||
void EnvironmentOptions::CheckOptions(std::vector<std::string>* errors) {
|
||||
if (!userland_loader.empty() && !experimental_modules) {
|
||||
errors->push_back("--loader requires --experimental-modules be enabled");
|
||||
errors->push_back("--experimental-loader requires "
|
||||
"--experimental-modules be enabled");
|
||||
}
|
||||
if (has_policy_integrity_string && experimental_policy.empty()) {
|
||||
errors->push_back("--policy-integrity requires "
|
||||
@ -311,6 +312,12 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
|
||||
"experimental support for exports in package.json",
|
||||
&EnvironmentOptions::experimental_exports,
|
||||
kAllowedInEnvironment);
|
||||
AddOption("--experimental-loader",
|
||||
"(with --experimental-modules) use the specified file as a "
|
||||
"custom loader",
|
||||
&EnvironmentOptions::userland_loader,
|
||||
kAllowedInEnvironment);
|
||||
AddAlias("--loader", "--experimental-loader");
|
||||
AddOption("--experimental-modules",
|
||||
"experimental ES Module support and caching modules",
|
||||
&EnvironmentOptions::experimental_modules,
|
||||
@ -363,11 +370,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
|
||||
"set module type for string input",
|
||||
&EnvironmentOptions::module_type,
|
||||
kAllowedInEnvironment);
|
||||
AddOption("--loader",
|
||||
"(with --experimental-modules) use the specified file as a "
|
||||
"custom loader",
|
||||
&EnvironmentOptions::userland_loader,
|
||||
kAllowedInEnvironment);
|
||||
AddOption("--es-module-specifier-resolution",
|
||||
"Select extension resolution algorithm for es modules; "
|
||||
"either 'explicit' (default) or 'node'",
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/example-loader.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/example-loader.mjs
|
||||
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
||||
import assert from 'assert';
|
||||
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
|
||||
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
||||
import '../fixtures/es-modules/test-esm-ok.mjs';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
|
||||
import { expectsError, mustCall } from '../common/index.mjs';
|
||||
import assert from 'assert';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
|
||||
import { expectsError, mustCall } from '../common/index.mjs';
|
||||
import assert from 'assert';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
|
||||
import { expectsError } from '../common/index.mjs';
|
||||
|
||||
import('test').catch(expectsError({
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
|
||||
import '../common/index.mjs';
|
||||
import { readFile } from 'fs';
|
||||
import assert from 'assert';
|
||||
|
@ -1,3 +1,3 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
|
||||
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
||||
import './not-found.js';
|
||||
|
@ -1,3 +1,3 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
|
||||
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
||||
import './not-found.mjs';
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/js-loader.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/js-loader.mjs
|
||||
/* eslint-disable node-core/require-common-first, node-core/required-modules */
|
||||
import { namedExport } from '../fixtures/es-module-loaders/js-as-esm.js';
|
||||
import assert from 'assert';
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
|
||||
import { createRequire } from '../common/index.mjs';
|
||||
|
||||
import assert from 'assert';
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
|
||||
// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
|
||||
import { expectsError, mustCall } from '../common/index.mjs';
|
||||
import assert from 'assert';
|
||||
|
||||
|
@ -87,6 +87,7 @@ const undocumented = difference(process.allowedNodeEnvironmentFlags,
|
||||
assert(undocumented.delete('--debug-arraybuffer-allocations'));
|
||||
assert(undocumented.delete('--experimental-worker'));
|
||||
assert(undocumented.delete('--no-node-snapshot'));
|
||||
assert(undocumented.delete('--loader'));
|
||||
|
||||
assert.strictEqual(undocumented.size, 0,
|
||||
'The following options are not documented as allowed in ' +
|
||||
|
Loading…
x
Reference in New Issue
Block a user