import.meta

js/import_meta2026-08-24 19:46:25

import.meta 元属性将特定上下文的元数据暴露给 JavaScript 模块。它包含了这个模块的信息,例如这个模块的 URL。

这个属性返回一个对象,该对象的各种属性就是当前运行的脚本的元信息。具体包含哪些属性,标准没有规定,由各个运行环境自行决定。一般来说,import.meta 至少会有下面两个属性:

import.meta.url

import.meta.url 返回当前模块的 URL 路径。举例来说,当前模块主文件的路径是 https://foo.com/main.js ,import.meta.url 就返回这个路径。如果模块里面还有一个数据文件 data.txt,那么就可以用下面的代码,获取这个数据文件的路径。

new URL('data.txt', import.meta.url)

注意,Node.js 环境中,import.meta.url 返回的总是本地路径,即是 file:URL 协议的字符串,比如 file:///home/user/foo.js。

import.meta.scriptElement

import.meta.scriptElement 是浏览器特有的元属性,返回加载模块的那个 <script> 元素,相当于 document.currentScript 属性。

<script type="module" src="my-module.js" data-foo="abc"></script>
// my-module.js 内部执行下面的代码
import.meta.scriptElement.dataset.foo
// "abc"

参考

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/import.meta

https://www.bookstack.cn/read/es6-3rd/spilt.10.docs-proposals.md

本页目录