Skip to content

Transition from __dirname to import.meta.url could be better documented #28114

@GrosSacASac

Description

@GrosSacASac

Relevant doc:
https://nodejs.org/dist/latest/docs/api/esm.html#esm_no_code_require_code_code_exports_code_code_module_exports_code_code_filename_code_code_dirname_code

using --experimental-modules

We could improve the documentation:
import.meta.url is not an equivalent of __dirname several lines of code are required to make it work.

Here's my current workaround, if you have a better way of doing please share:

import path from "path";
// same as previous __dirname, substring(8) removes the file:/// that is at the beginning
const dirname__ = path.dirname(import.meta.url.substring(8));

const x = readFileSync(`${dirname__}/x.html`, `utf8`);

Describe the solution you'd like
Add a few lines in the doc on how to transition from __dirname to import.meta.url

Describe alternatives you've considered
Otherwise provide import.meta.__dirname for even easier transition

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions