mjs 文件中,我们需要对__dirnamerequire等全局变量进行模拟。我们可以借助 fileURLToPathcreateRequire 来进行模拟,具体实现如下:

    1. // temp.mjs
    2. import { createRequire } from 'module'
    3. import { dirname } from 'path'
    4. import { fileURLToPath } from 'url'
    5. const _dirname = typeof __dirname !== undefined
    6. ? __dirname
    7. : dirname(fileURLToPath(import.meta.url))
    8. const _require = createRequire(import.meta.url)