@darkobits/fd-name
v0.1.7
Published
ESM replacements for __dirname and __filename.
Downloads
73
Maintainers
Readme
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.