NodeJS's __filename/__dirname in ES6 Modules

Bradley Meck bradley.meck at
Fri Jan 20 16:47:43 UTC 2017

The current trend is towards the
rewrite which does not have magic variables

There are ideas about exposing the URL of the current ESM via something

On Fri, Jan 20, 2017 at 10:42 AM, Gil Tayar <gil at> wrote:

> While reading Dominic Denicola's spec for dynamic import() at
>, I read his rational for
> not having import be a regular function, but rather a "syntactic form". The
> idea is that import() needs to be "in the scope" of the current module, as
> it needs to resolve the module path it is given relative to the current
> module's.
> Thinking about it some more, I thought it would be a pity for import to be
> so "special", and asked myself whether there will be more features that
> will need to be "module-aware" like import().
> And there are! (I think...) - __filename and __dirname in NodeJS are
> exactly such features. Actually, anything passed to the function wrapping
> each NodeJS module is such a feature, but going over them, only __filename
> and __dirname are not immediately related to the module mechanism.
> So my question is this (and it is specifically addressed to the NodeJS
> implementors in the group): in NodeJS's implementation of ES6 modules, how
> will __dirname and __filename be implemented? Will there still be a
> function wrapper like in the current module implementation? Or will
> __dirname and __filename be a "syntactic form" like import()? Or something
> else?
> Thanks,
> Gil Tayar
> _______________________________________________
> es-discuss mailing list
> es-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list