在给vite+vue3.0设置别名的时候,直接使用了__dirname这个内置变量报错__dirname is not defined in ES module scope
报错原因:
__dirname是commonjs规范的内置变量。如果使用了esm,是不会注入这个变量的。
在commonjs中,注入了__dirname,__filename, module, exports, require五个内置变量用于实现导入导出的能力。而在esm中,因为规范已经完全不一样,故实现方式也是不一样的。
在esm中,显然模块的导入导出使用export/import,自然不会再用exports /require,同理__dirname,__filename也有对应的规范写法。
解决的办法:
import path from 'path'
import { fileURLToPath } from 'url'
const __filenameNew = fileURLToPath(import.meta.url)
const __dirnameNew = path.dirname(__filenameNew)
文章来源:https://www.toymoban.com/news/detail-686656.html
文章来源地址https://www.toymoban.com/news/detail-686656.html
到了这里,关于报错:__dirname is not defined in ES module scope的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!