Alternative __dirname di module es6

28 Sep 2023

Jika kamu seorang programmer Javascript dan sudah mulai menggunakan modul es6 maka kamu perlu tips singkat ini untuk dapat menggunakan variable __dirname di scriptmu. Karena pada modul es6 variable __dirname tidak dapat diakses.

Bagaimana mengetahui bahwa aplikasi kita sudah menggunakan modul es6?. hal ini bisa dilihat dari cara import sebuah modul, sebelum modul es6 cara import modul menggunakan syntax require. Contoh:

const app = require('express')

sedangkan pada modul es6 sudah menggunakan syntax import

import app from 'express'

Hal ini ditandai dengan adanya properti konfig dengan nama type dan bernilai module pada file package.json. Nah jika sudah menggunakan modul es6 maka variable __dirname tidak dapat dipakai lagi. Untuk itu berikut ini ada caranya membuat semisal __dirname, kamu cukup salin saja kode berikut dan variable __dirname sudah bisa digunakan.

import path, { dirname } from 'path'
import { fileURLToPath } from 'url'

const __dirname = dirname(fileURLToPath(import.meta.url))

semoga bermanfaat.