I recently tried to use __dirname
inside a ES module. It turns out, that I cannot. It throws an error. So let us see how To Fix ReferenceError: __dirname is not defined.
For people who do not know what it is, let us first discuss what __dirname
is.
__dirname
is a global variable in Node.js that can be used to reference the directory name of the current module.
We can use import.meta.url
and fileURLToPath
to get the name of the directory in ES modules.
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
JavaScriptWe are importing the dirname function from the Node.js path module. import.meta
is a property that can be used to access context-specific metadata of an ES module.
import.meta.url gives us the URL of the current module (including query parameters and/or hash if they exist). Using the combination of these properties, we are able to replicate __dirname
functionality in an ES module and able to fix the “__dirname is not defined in ES module scope” error.
I am terrible at optimizing my keyboard layout for anything. But off lately, my little…
I recently switched completely to the Brave browser and have set ad blocking to aggressive…
I was preparing a slide deck for a hackathon and decided to put in a…
I have been using npx a lot lately, especially whenever I want to use a…
Manually copy-pasting the output of a terminal command with a mouse/trackpad feels tedious. It is…
While working on a project, I wanted to do an integrity check of a file…