Saya ingin mendapatkan path ke file skrip JavaScript saat ini di Node.js, saya telah mencoba menggunakan process.cwd()
sepertinya path yang dikembalikan dari fungsi ini mengambil current working directory (CWD) terminal saya.
Jika file JavaScript saya berada di /home/budi/test-path/src/index.js
dan isinya seperti ini:
console.log(process.cwd());
Kemudian saya eksekusi dari /home/budi
menggunakan perintah node /home/budi/test-path/src/index.js
output dari file skripnya adalah /home/budi
, output yang saya harapkan adalah path lengkap ke file JavaScript yang dieksekusi yaitu /home/budi/test-path/src/index.js
, bagaimana caranya ya?
Memang begitu perilaku fungsi process.cwd()
.
Kalau pakai module CommonJS bisa menggunakan __filename
untuk mendapatkan path lengkap ke file saat ini, atau __dirname
kalau mau mendapatkan path ke direktori dimana file skrip berada.
console.log(__filename); // /home/budi/test-path/src/index.js
console.log(__dirname); // /home/budi/test-path/src
Kalau pakai module ECMAscritpt kedua variabel tersebut tidak ada, solusinya bisa menggunakan variabel global import.meta.url
dengan fungsi fileURLToPath()
seperti ini:
import { dirname } from "path";
import { fileURLToPath } from "url";
// file
const __filename = fileURLToPath(import.meta.url);
console.log(__filename); // /home/budi/test-path/src/index.js
// direktori
const __dirname = dirname(__filename);
console.log(__dirname); // /home/budi/test-path/src
Kamu tau jawabannya?
Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!