[Fixed] __dirname is not working in node js with webpack bundling

Issue

My current directory is

D:\bkp\Programming\TestWorks\nodejs\testApp

but when i am using __dirname and trying to show a file with express server it gives me this error

Error: ENOENT: no such file or directory, stat 'D:\views\index.html'

my code for that is

res.sendFile(__dirname + 'views/index.html');

when i am bundling it with webpack and run the bundle file then this happens. Otherwise if i just run the normal app.js file it works fine. Help would be appreciated.

Solution

This is because webpack can handle __dirname (and other node specific things) in different ways. If you want it to behave like normal, use this in your webpack config:

{
    node: {
        __dirname: false
    }
}

See: https://webpack.js.org/configuration/node/

Leave a Reply

(*) Required, Your email will not be published