2017-04-20 7 views
1

Mein aktuelles Verzeichnisses wird__dirname funktioniert nicht in Knoten js mit webpack Bündelung

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

aber wenn ich bin mit __dirname und versucht, eine Datei mit Express-Server zu zeigen, es gibt mir diesen Fehler

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

mein Code dafür ist

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

, wenn ich es mit webpack bin Bündelung und den bund laufen le Datei, dann passiert das. Andernfalls, wenn ich nur die normale app.js-Datei ausführen, funktioniert es gut. Hilfe wäre willkommen.

Antwort

2

Dies liegt daran, dass Webpack __dirname (und andere knotenspezifische Dinge) auf verschiedene Arten behandeln kann. Wenn Sie es wollen, wie normal verhalten, verwenden Sie diese in Ihrer webpack config:

{ 
    node: { 
     __dirname: false 
    } 
} 

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

4

Die __dirname zu / von webpack gesetzt ist, das ist, warum Sie mit /views/index.html am Ende, welche die Wurzel Ihres Dateisystems, das passiert in Ihrem Fall D:\. Sie können node.dirname in Ihrer Webpack-Konfiguration auf false setzen, um es nicht zu injizieren und zur Laufzeit zu verschieben. Beachten Sie, dass sich __dirname auf den Speicherort des ausgeführten Skripts bezieht, dh auf den Speicherort des Pakets und nicht auf die ursprüngliche Quelle.

node: { 
    __dirname: false 
} 
Verwandte Themen