import.meta对象是什么?

import.meta是ES6(ESM)模块里的一个对象,它包含了当前模块的一些信息。比如当前模块的url,它的所有属性都是可写,可配置,可枚举的。它可以在浏览器中使用,也可以在node中使用。

在浏览器中使用

在index.html中引入js文件夹下的index.js文件

html 复制代码
<script type="module" src="./js/index.mjs"></script>

index.js文件

js 复制代码
console.log('import.meta:',import.meta)

在node中使用

main.mjs

js 复制代码
console.log('import.meta:',import.meta)
cmd 复制代码
node main.mjs

结果如下

import.meta属性

url属性

在浏览器中运行时,import.meta.url就是代码所在的js文件的url http://127.0.0.1:5500/js/index.mjs

在node中运行的时候,import.meta.url就是代码所在模块的url file:///D:/my/node-test/main.mjs

resolve方法

将一个相对于当前模块的地址,解析成完成的url.

在浏览器./js/index.mjs中,添加如下代码

js 复制代码
console.log('import.meta.resolve ./test.mjs:',import.meta.resolve('./test.mjs')) 

结果

js 复制代码
import.meta.resolve ./test.mjs: http://127.0.0.1:5500/js/test.mjs

在node模块中,添加如下代码

js 复制代码
console.log('import.meta.resolve ./js/index.mjs:',import.meta.resolve('./js/index.mjs'))

结果如下

js 复制代码
import.meta.resolve ./js/index.mjs: file:///D:/my/node-test/js/index.mjs

import.meta对象是可扩展的,可以为其添加任何自定义对象,方便在代码运行时,区分不同的环境和工具

相关推荐
资讯第一线几秒前
RAD Studio 13.1 [DELPHI 13.1] [官方原版IOS] 下载
前端
橘子编程3 分钟前
CSS 全栈指南:从基础到 2025 新特性
前端·css·chrome·tensorflow·less·css3·html5
不会写DN10 分钟前
从依赖到自主:手写一个 ICO 文件转换器
前端·javascript·typescript·node.js
夏暖冬凉15 分钟前
前端大文件上传
前端
Aliex_git15 分钟前
前端监控笔记(一)
前端·笔记·学习
Highcharts.js16 分钟前
Highcharts Grid Lite:企业免费表格数据的基本工具
前端·javascript·信息可视化·免费·highcharts·表格工具
老萬頭18 分钟前
【技术深水区】抖音 WEB 端逆向:从零到一拿下 a_bogus 参数
前端·爬虫·python
程序员小李白19 分钟前
Vue 组件通信 极简速记版
前端·javascript·vue.js
光影少年19 分钟前
跨域问题如何解决?
前端·nginx·前端框架
C澒21 分钟前
微前端容器标准化 —— 公共能力篇:通用监控能力
前端·架构