Node.jsでパスを取得する方法の例
__dirname
変数を使用する
最も一般的な方法は、__dirname
変数を使用することです。この変数は、現在のスクリプトのディレクトリの絶対パスを表します。
console.log(__dirname);
path.dirname()
関数を使用する
path
モジュールのdirname()
関数を使い、現在のスクリプトのパスからディレクトリ名を取得することもできます。
const path = require('path');
const currentScriptPath = __filename;
const currentScriptDirectory = path.dirname(currentScriptPath);
console.log(currentScriptDirectory);
process.cwd()
関数を使用する
現在の作業ディレクトリ(現在のスクリプトが実行されている場所)を取得するには、process.cwd()
関数を使用します。
const currentWorkingDirectory = process.cwd();
console.log(currentWorkingDirectory);
注意
__dirname
は、スクリプトファイルのパスそのものではなく、そのファイルが含まれるディレクトリのパスです。path.dirname()
は、指定されたパスからディレクトリ名のみを抽出します。process.cwd()
は、スクリプトが実行されている現在の作業ディレクトリを取得します。
Node.jsでパスを取得する方法の例
console.log(__dirname);
- 説明:
__dirname
は、現在のスクリプトファイルが含まれるディレクトリの絶対パスを表す変数です。 - 出力: 現在のスクリプトファイルのディレクトリのパス(例:
/Users/username/projects/myproject
)
const path = require('path');
const currentScriptPath = __filename;
const currentScriptDirectory = path.dirname(currentScriptPath);
console.log(currentScriptDirectory);
const currentWorkingDirectory = process.cwd();
console.log(currentWorkingDirectory);
- 説明:
process.cwd()
は、現在の作業ディレクトリ(スクリプトが実行されている場所)を取得します。 - 出力: 現在の作業ディレクトリのパス(例:
/Users/username/projects
)
url.fileURLToPath()
関数を使用する
const { URL } = require('url');
const currentScriptPath = URL.fileURLToPath(import.meta.url);
const currentScriptDirectory = path.dirname(currentScriptPath);
console.log(currentScriptDirectory);
- 説明:
import.meta.url
は、現在のモジュールの URL を取得します。url.fileURLToPath()
は、この URL をファイルシステムのパスに変換します。 - 利点: ES6 モジュールシステムを使用している場合に便利です。
process.argv
を使用する
const currentScriptPath = process.argv[1];
const currentScriptDirectory = path.dirname(currentScriptPath);
console.log(currentScriptDirectory);
- 説明:
process.argv
は、コマンドライン引数の配列です。最初の要素(インデックス 0)は、ノードの実行ファイルのパスであり、2番目の要素(インデックス 1)は、実行中のスクリプトのパスです。 - 利点: スクリプトがコマンドラインから実行される場合に便利です。
module.filename
を使用する
const currentScriptPath = module.filename;
const currentScriptDirectory = path.dirname(currentScriptPath);
console.log(currentScriptDirectory);
- 説明:
module.filename
は、現在のモジュールのファイルシステムパスを取得します。
node.js