定义
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const utilsPath = join(__dirname, './utils/index.js');
console.log('===== ESM 路径兼容 =====');
console.log('ESM __filename:', __filename);
console.log('ESM __dirname:', __dirname);
console.log('拼接后的 utils 路径:', utilsPath);
export { __filename, __dirname };
使用
import { __dirname, __filename } from './esm-dirname.js';
console.log('\n===== 外部模块使用路径兼容 =====');
console.log('主模块 __dirname:', __dirname);