Baseline Widely available *
import.meta
å
屿§å°ç¹å®ä¸ä¸æçå
æ°æ®æ´é²ç» JavaScript 模åãå®å
å«äºè¿ä¸ªæ¨¡åçä¿¡æ¯ï¼ä¾å¦è¿ä¸ªæ¨¡åç URLã
import.meta
æ¯ä¸ä¸ªå®¿ä¸»ç¯å¢å建ç坿©å±ç null
åå对象ï¼å
¶ææå±æ§åå¯åãå¯é
ç½®ã坿䏾ãè§è没æå¨å¯¹è±¡ä¸æç¡®å®ä¹ä»»ä½å±æ§ï¼ä½æ¯å®¿ä¸»ç¯å¢é常ä¼å®ä¹ä»¥ä¸å±æ§ï¼
url
å°æ¤æ¨¡åç宿´ URLï¼å
æ¬æ¥è¯¢åæ°åçæ®µæ è¯ç¬¦ï¼å¨ ?
å #
ä¹åï¼ã卿µè§å¨ä¸ï¼å®æ¯å¯è·åæ¤èæ¬ç URLï¼å¯¹å¤é¨èæ¬ï¼æè
æ¯å
嫿¤èæ¬çææ¡£ç URLï¼å¯¹å
èèæ¬ï¼ãå¨ Node.js ä¸ï¼å®æ¯æä»¶è·¯å¾ï¼å
æ¬ file://
åè®®é¨åï¼ã
resolve
å°ä¸ä¸ªæ¨¡åçæ è¯ç¬¦è§£æä¸ºç¸å¯¹äºå½å模åç URLã
import.meta
è¯æ³ç±å
³é®å import
ãä¸ä¸ªç¹ç¬¦å·å meta
æ è¯ç¬¦ç»æãå 为 import
æ¯ä¿çåè䏿¯æ è¯ç¬¦ï¼å
¶å¹¶ä¸æ¯å±æ§è®¿é®å¨èæ¯ç¹æ®ç表达å¼è¯æ³ã
import.meta
å
屿§å¨ JavaScript 模åä¸å¯ç¨ï¼å¨æ¨¡åä¹å¤ï¼å
æ¬å¨æ¨¡åä¸ç´æ¥è°ç¨ eval()
ï¼ä½¿ç¨ import.meta
æ¯è¯æ³é误ã
å¨ import
声æä¸ä½¿ç¨æ¥è¯¢åæ°å
许为ç¹å®æ¨¡åä¼ éåæ°ï¼å¯ä½ä¸ºåºç¨ç¨åºå
ä» window.location
ï¼æå¨ Node.js ä¸ä» process.env
ï¼è¯»ååæ°çè¡¥å
æ¹å¼ãä¾å¦ä¸é¢ç HTMLï¼
<script type="module">
import "./index.mjs?someURLInfo=5";
</script>
index.mjs
模åå¯ä»¥éè¿ import.meta
è·å someURLInfo
åæ°ï¼
// index.mjs
new URL(import.meta.url).searchParams.get("someURLInfo"); // 5
å¨èæ¬ä¸å¼å ¥å«çèæ¬åæ ·çæï¼
// index.mjs
import "./index2.mjs?someURLInfo=5";
// index2.mjs
new URL(import.meta.url).searchParams.get("someURLInfo"); // 5
Node.js ä¸ ES 模åçå®ç°æ¯æå¨è§£ææ¨¡åçæ è¯ç¬¦ä¸å«ææ¥è¯¢åæ°åçæ®µæ è¯ç¬¦ï¼å¦ä¸è¿°ç¤ºä¾æç¤ºãç¶èï¼ä»å½ä»¤è¡æå®æ¨¡åæ è¯ç¬¦æ¶æ æ³ä½¿ç¨æ¥è¯¢åæ°åçæ®µæ è¯ç¬¦ï¼ä¾å¦ node index.mjs?someURLInfo=5
ï¼ï¼å 为å½ä»¤è¡çå
¥å£ç¹ä½¿ç¨äºç±»ä¼¼äº CommonJS çè§£ææ¨¡å¼ï¼å°æ´ä¸ªè·¯å¾è§ä¸ºæä»¶èé URLãè¦å°åæ°ä¼ éç»å
¥å£ç¹æ¨¡åï¼éè¦æ¹ç¨å½ä»¤è¡åæ°ï¼å¹¶ä» precess.argv
读åï¼å¦ node index.mjs --someURLInfo=5
ï¼ã
å¨ Node.js ç CommonJS 模åä¸ï¼æä¸é¨ç __dirname
åéï¼å¼ä¸ºå
å«å½åæä»¶çæä»¶å¤¹çç»å¯¹è·¯å¾ï¼å¯ä»¥ç¨æ¥è§£æç¸å¯¹è·¯å¾ã使¯ï¼ES 模åé¤äº import.meta
ä¹å¤æ²¡æä¸ä¸æåéãå æ¤ï¼è¦è§£æç¸å¯¹è·¯å¾çæä»¶ï¼å¯ä»¥ä½¿ç¨ import.meta.url
ãæ³¨æè¿ä¸ªå±æ§ä½¿ç¨çæ¯ URL èéæä»¶ç³»ç»çè·¯å¾ã
ä¹åï¼CommonJSï¼ï¼
const fs = require("fs/promises");
const path = require("path");
const filePath = path.join(__dirname, "someFile.txt");
fs.readFile(filePath, "utf8").then(console.log);
ä¹åï¼ES 模åï¼ï¼
import fs from "node:fs/promises";
const fileURL = new URL("./someFile.txt", import.meta.url);
fs.readFile(fileURL, "utf8").then(console.log);
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4