'__ dirname'用于获取当前执行模块文件的目录名称。
让我们首先尝试了解为什么标记此错误。之所以发生此错误,是因为__dirname在ES6(Ecmascript 2015)模块范围中无法作为全局变量可用。在ES6模块中,全局范围被封装,并且在ES6模块中不自动使用CommonJS模块中的某些变量(例如__dirname和__fileName)。请记住,有两种类型的模块系统,commonj和ES6模块系统。
要解决此错误,我们可以使用以下替代方法:
import { dirname } from 'path';
import { fileURLToPath } from 'url';
const __filename =fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
通过遵循此方法,您可以访问ES6模块中的__dirName等效的,而不会遇到“ Reference Error”。