Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

darkobits/fd-name

Open more actions menu

Backwards-compatible replacement for __filename / __dirname in ESM environments.

Install

npm install @darkobits/fd-name

This package is a hybrid module that exports ESM and CJS. If you are authoring ESM, CJS, or more likely authoring ESM-like syntax that is being transpiled to CJS, you can use this package today and transition to pure ESM in the future with no breaking changes. ✨

Use

/foo/bar/unicorns.js

import { filename, dirname } from '@darkobits/fd-name';

filename() //=> '/foo/bar/unicorns.js'
dirname() //=> '/foo/bar'

This is a bit less awkward than:

import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

Which has to be repeated in every file you want to use these values in, as import.meta is specific to the local module.

⚠️ Note: This package removes the file:// protocol prefix from paths in ESM as most tooling does not play nicely with it, including the built-in path module.


About

⚙️ Cross-environment __dirname / __filename replacement for ESM.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.