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对象是可扩展的,可以为其添加任何自定义对象,方便在代码运行时,区分不同的环境和工具

相关推荐
计算机程序设计小李同学9 分钟前
幼儿园信息管理系统的设计与实现
前端·bootstrap·html·毕业设计
雨季66637 分钟前
Flutter 三端应用实战:OpenHarmony “专注时光盒”——在碎片洪流中守护心流的数字容器
开发语言·前端·安全·flutter·交互
tao3556671 小时前
【用AI学前端】HTML-02-HTML 常用标签(基础)
前端·html
2601_949532841 小时前
Psello HTML Template: A Developer‘s Deep-Dive Review and Guide - Download Free
前端·windows·html·seo·wordpress·gpl
CappuccinoRose1 小时前
CSS前端布局总指南
前端·css·学习·布局·flex布局·grid布局·float布局
穿过锁扣的风1 小时前
如何操作HTML网页
前端·javascript·html
San30.1 小时前
从零构建坚固的前端堡垒:TypeScript 与 React 实战深度指南
前端·react.js·typescript
yunhuibin2 小时前
VideoPipe环境搭建及编译ubuntu240403
前端·人工智能
CHANG_THE_WORLD2 小时前
PDF文档结构分析 一
前端·pdf
东东5162 小时前
果园预售系统的设计与实现spingboot+vue
前端·javascript·vue.js·spring boot·个人开发