Oasis's Cloud

一个人的首要责任,就是要有雄心。雄心是一种高尚的激情,它可以采取多种合理的形式。
—— 《一个数学家的辩白》

import.meta 在 Node.js 中的发展过程

作者:oasis


import.meta 在 Node.js 中的引入和逐步完善经历了多个版本的演进:

  1. import.meta.url

从 Node.js v12 开始,import.meta.url 已经被支持,用于获取当前模块的绝对 file: URL。 它是 ES 模块的标准特性,用于替代 CommonJS 中的 __filename 和 __dirname。 2. import.meta.resolve()

在 Node.js v20 中,import.meta.resolve() 被引入,用于同步解析模块路径。 这个方法允许在模块加载时动态解析路径,类似于浏览器行为。 3. import.meta.dirname 和 import.meta.filename

这两个属性在 Node.js v20.11.0 中被引入,作为 __dirname 和 __filename 的替代品。 它们提供了更直接的方式来获取当前模块的目录路径和文件路径。 4. 其他特性

Node.js v21.2.0 进一步完善了 import.meta 的功能,包括对 import.meta.dirname 和 import.meta.filename 的支持。 总结来说,import.meta 的核心功能(如 url 和 resolve)在 Node.js v20 及更高版本中得到了完善和标准化支持。