__dirname is not defined in ES module scope

442 阅读1分钟

有时候我们会使用到 path 路径,这个有助于我们获取一些项目的路径,用于配置项目基础功能,但是有使用到 path__dirname 时,会出现 __dirname is not defined in ES module scope,这时候我们就需要手动获取一下 __dirname

import path from 'path';
import { fileURLToPath } from 'url';
//为了避免区分一下另一个变量,改个名字吧
const __dirnameNew = path.dirname(fileURLToPath(import.meta.url));

path.join(__dirnameNew, 'styles'),

此外还有两个参数 dirname、filename,import.meta.url 的 url 点进去一看就看到了,当然还是推荐先使用上面的,上面的不行再换下面的(个人尝试了一下竟然没获取到,有人获取到了,可以根据自己环境更换)

//听别人说这两个也可以用,但个人测试,不同环境下似乎不一定都生效,如果上面的不行,可以试试下面的
import.meta.filename
import.meta.dirname