タイトルにある問題にけっこうハマってしまいました。
検索でなかなかヒットしなかったため、 簡単ですがメモとして残しておきます。
##__dirnameで'/'が返ってくる
node.jsでパスを取得するやり方はいくつかあります。
__dirnameが実行しているファイルのパス、 process.cwd()は現在のディレクトリのパス、 後はよくpathモジュールを読み込んで使う感じですね。
今回はnpmモジュールを作成しており、 __dirnameの値が欲しかったのですが、 常に'/'が返ってくる状態でした。__filenameは'./index.js'になっていました。
##解決策
process.cwd()などで頑張っても良いですが、 __dirnameが使えないとつらい場合もあります。
おそらくwebpackを使用している方に起きていると思います。
webpack.config.js
module.exports = {
target: "node"
node: {
__dirname: false,
__filename: false
}
}
を追加することで正しい__dirnameのパスが取得できるようになります。