ES6 モジュールを使用する場合の Node.js での __dirname の代替 質問する

ES6 モジュールを使用する場合の Node.js での __dirname の代替 質問する

--experimental-modulesES6 モジュールを使用するために、Node アプリケーションを実行するときにフラグを使用します。

ただし、このフラグを使用すると、メタ変数は使用できません。このモードと互換性のある、__dirname格納されている同じ文字列を取得する別の方法はありますか?__dirname

ベストアンサー1

Node.js 20.11 / 21.2以降では、import.meta.dirname:

const __dirname = import.meta.dirname;

Node.js 10.12以降では、複数のファイルを作成する必要がなく、プラットフォーム間でファイル名の特殊文字を処理する代替手段があります。

import { dirname } from 'path';
import { fileURLToPath } from 'url';
    
const __dirname = dirname(fileURLToPath(import.meta.url));

Node.js 14.14 以降では、組み込みモジュールおよびに'path'、オプションでスキーム'url'のプレフィックスを付けることができます。node'node:path''node:url'

おすすめ記事