2017-04-20 7 views
1

私の現在のディレクトリを束ねるのWebPACKとノードJSに__dirnameは

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にバンドルしていて、そのバンドを実行していますファイルが存在する場合、これが発生します。それ以外の場合、通常のapp.jsファイルを実行するだけで正常に動作します。ヘルプをいただければ幸いです。

答えて

2

これは、webpackが__dirname(および他のノード固有のもの)をさまざまな方法で処理できるためです。あなたはそれが通常のように振る舞うようにしたい場合は、あなたのWebPACKの設定でこれを使用します。

{ 
    node: { 
     __dirname: false 
    } 
} 

参照:__dirnameはWebPACKのことで/に設定されているhttps://webpack.js.org/configuration/node/

4

が、それはあなたがルートがある/views/index.htmlで終わる理由ですあなたのファイルシステムのD:\になります。 webpackの設定でnode.dirnamefalseを設定して、実行しないように設定できます。 __dirnameは、実行しているスクリプトの場所を参照します。つまり、元のソースではなくバンドルの場所を意味します。

node: { 
    __dirname: false 
} 
関連する問題