美文网首页
报错:__dirname is not defined in E

报错:__dirname is not defined in E

作者: 如果俞天阳会飞 | 来源:发表于2023-07-27 10:05 被阅读0次
    image.png

    在给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)
    
    console.log(__filenameNew)
    console.log(__dirnameNew)
    

    ————————————————
    版权声明:本文为CSDN博主「m_uncle」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m_uncle/article/details/125894403

    相关文章

      网友评论

          本文标题:报错:__dirname is not defined in E

          本文链接:https://www.haomeiwen.com/subject/arulpdtx.html