跳到主要内容

vite3(ESM)无__dirname变量

· 阅读需 1 分钟
TransonQ
Front-end Engineer

ESM 不支持__dirname,需要自定义​

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

const _dirname =
typeof __dirname !== 'undefined'
? __dirname
: dirname(fileURLToPath(import.meta.url))

路径别名示例​

vite.config.js
import react from '@vitejs/plugin-react'
import { dirname, resolve } from 'path'
import { fileURLToPath } from 'url'
import { defineConfig } from 'vite'

// __dirname is not available in ES module.
const _dirname =
typeof __dirname !== 'undefined'
? __dirname
: dirname(fileURLToPath(import.meta.url))

// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'@': resolve(_dirname, 'src'),
},
},
})