vue.js 参考错误:__dirname未在ES模块作用域构建脚本中定义

vjrehmav  于 2023-04-21  发布在  Vue.js
关注(0)|答案(3)|浏览(466)

我有一个问题与“参考错误:__dirname is not defined in ES module scope”错误

import path from 'path'
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import Pages from 'vite-plugin-pages'
import Layouts from 'vite-plugin-vue-layouts'
import Components from 'unplugin-vue-components/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Unocss from 'unocss/vite'
import { campaign } from './package.json'


export default defineConfig({
  resolve: {
    alias: {
      '~/': `${path.resolve(__dirname, 'src')}/`,
    },
  },...

有人能提供解决方案吗?非常感谢!

o2g1uqev

o2g1uqev1#

如错误所示,__dirname未在ES模块范围中定义。
试试这个:

import url from 'url'

const __filename = url.fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

现在您可以在path.resolve()中使用__dirname

zujrkrfu

zujrkrfu2#

解决方案是将Node更新到最新版本。Vite放弃了对旧版本的支持。谢谢大家!

wn9m85ua

wn9m85ua3#

如果您遇到此问题并且最近安装了module-alias,则卸载module-alias并删除其相关内容将解决此问题。

相关问题