2017-04-20 70 views
1

我的當前目錄的工作是__dirname不節點JS用的WebPack捆綁

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

,但是當我使用__dirname並試圖顯示與快遞服務器上的文件它給了我這個錯誤

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

我的代碼是

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

當我使用webpack捆綁它並運行外圍le文件然後發生這種情況。否則,如果我只是運行正常的app.js文件,它工作正常。幫助將不勝感激。

回答

2

這是因爲webpack可以用不同的方式處理__dirname(和其他節點特定的東西)。如果你想讓它表現得像正常的,在你的WebPack配置使用:

{ 
    node: { 
     __dirname: false 
    } 
} 

參見:https://webpack.js.org/configuration/node/

4

__dirname設置爲/通過的WebPack,這就是爲什麼你最終/views/index.html這是根本你的文件系統,這恰好是D:\你的情況。您可以在您的webpack配置中將node.dirname設置爲false,以便不注入並將其推遲到運行時。請記住__dirname將引用您正在執行的腳本的位置,這意味着該包的位置,而不是原始源。

node: { 
    __dirname: false 
}