Skip to content

--import flag for Node.js parity #1909

Open
@Thundercraft5

Description

@Thundercraft5

Desired Behavior

Should work exactly as node's --import flag, optionally an -I alias.

Alternatives you've considered

Running node --loader ts-node/esm with a local file path results in an error:

> node --import ".\src\configs.ts" --loader ts-node/esm
(node:9468) ExperimentalWarning: Custom ESM Loaders is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:695
    throw new ERR_INVALID_MODULE_SPECIFIER(
          ^
CustomError: ERR_INVALID_MODULE_SPECIFIER .\src\configs.ts is not a valid package name <omitted>\Development\Libraries\NodeJS\eslint-plu
gin\
    at parsePackageName (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\dist-raw\node-internal-modules-esm-re
solve.js:695:11)
    at packageResolve (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\dist-raw\node-internal-modules-esm-reso
lve.js:713:5)
    at moduleResolve (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\dist-raw\node-internal-modules-esm-resol
ve.js:798:18)
    at Object.defaultResolve (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\dist-raw\node-internal-modules-e
sm-resolve.js:912:11)
    at <omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\src\esm.ts:218:35
    at entrypointFallback (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\src\esm.ts:168:34)
    at <omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\src\esm.ts:217:14
    at addShortCircuitFlag (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\src\esm.ts:409:21)
    at resolve (<omitted>\Development\Libraries\NodeJS\eslint-plugin\node_modules\ts-node\src\esm.ts:197:12)
    at nextResolve (node:internal/modules/esm/loader:161:28)

Additional context

Node.js recently added the --import flag in v19.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions