Baseline 2023
Newly available
<script>
å
ç´ ç type
屿§ç importmap
å¼è¡¨ç¤ºå
ç´ ç主ä½å
å«ä¸ä¸ªå¯¼å
¥æ å°ã
导å
¥æ å°ï¼import mapï¼æ¯ä¸ä¸ª JSON 对象ï¼å
¶å
许å¼åè
å¨å¯¼å
¥ JavaScript æ¨¡åæ¶ï¼æ§å¶æµè§å¨å¦ä½è§£ææ¨¡åæ è¯ç¬¦ã宿ä¾äºå¨ import
è¯å¥æ import()
è¿ç®ç¬¦ä¸ç¨ä½æ¨¡åæ è¯ç¬¦çææ¬ï¼å
¶ä¼å¨è§£ææ è¯ç¬¦æ¶ä¸è¦æ¿æ¢çææ¬ä¹é´å»ºç«æ å°ãJSON 对象å¿
须符å导å
¥æ å° JSON è¡¨ç¤ºæ ¼å¼ã
导å
¥æ å°ç¨äºè§£æéæå卿坼å
¥ä¸çæ¨¡åæ è¯ç¬¦ï¼å æ¤å¿
é¡»å¨ä½¿ç¨æ å°è¡¨ä¸å£°æçæ è¯ç¬¦å¯¼å
¥æ¨¡åçä»»ä½ <script>
å
ç´ ä¹å声æåå¤çãæ³¨æï¼å¯¼å
¥æ å°ä»
éç¨äºå¨ import
è¯å¥æ import()
è¿ç®ç¬¦ä¸çæ¨¡åæ è¯ç¬¦ï¼å®ä¸éç¨äº <script>
å
ç´ ç src
屿§ä¸æå®çè·¯å¾ï¼ä¹ä¸éç¨å è½½å° worker æ worklet ä¸ç模åã
æå ³æ´å¤ä¿¡æ¯ï¼è¯·åè§ JavaScript 模åæåç使ç¨å¯¼å ¥æ å°å¯¼å ¥æ¨¡åé¨åã
è¯æ³<script type="importmap">
// å®ä¹å¯¼å
¥ç JSON 对象
</script>
ä¸å¾æå® src
ãasync
ãnomodule
ãdefer
ãcrossorigin
ãintegrity
å referrerpolicy
屿§ã
ä» å¤çææ¡£ä¸å ·æå èå®ä¹ç第ä¸ä¸ªå¯¼å ¥æ å°ï¼å¿½ç¥ä»»ä½é¢å¤çå¯¼å ¥æ å°åå¤é¨å¯¼å ¥æ å°ã
å¼å¸¸TypeError
导å
¥æ å°çå®ä¹ä¸æ¯ JSON 对象ãimportmap
é®å·²å®ä¹ä½å®çå¼ä¸æ¯ JSON 对象æ scopes
é®å·²å®ä¹ä½å®çå¼ä¸æ¯ JSON 对象ã
对äºå¯¼å ¥æ å° JSON ä¸ç¬¦åå¯¼å ¥æ å°æ¨¡å¼çå ¶ä»æ åµï¼æµè§å¨ä¼çææ§å¶å°è¦åã
妿 script å
ç´ ä¸ç type="importmap"
没æè¢«å¤çï¼åä¼è§¦å error
äºä»¶ãè¿æ¯å¯è½åççï¼ä¾å¦ï¼å¨å¤ç导å
¥æ¨¡åæ¶æ¨¡åå·²ç»å¼å§å è½½ï¼æé¡µé¢ä¸å®ä¹äºå¤ä¸ªå¯¼å
¥æ å°ã
å½å¯¼å
¥ JavaScript æ¨¡åæ¶ï¼import
è¯å¥å import()
è¿ç®ç¬¦é½æä¸ä¸ªâæ¨¡åæ è¯ç¬¦âï¼å
¶æç¤ºè¦å¯¼å
¥ç模åãæµè§å¨å¿
é¡»è½å¤å°æ¤æ è¯ç¬¦è§£æä¸ºç»å¯¹è·¯å¾ï¼æè½å¯¼å
¥æ¨¡åã
ä¾å¦ï¼ä»¥ä¸è¯å¥ä»æ¨¡åæ è¯ç¬¦ "./modules/shapes/square.js"
导å
¥å
ç´ ï¼å
¶æ¯ä¸ä¸ªç¸å¯¹äºææ¡£çåºç¡ URL è·¯å¾ï¼èæ¨¡åæ è¯ç¬¦ "https://example.com/shapes/circle.js"
æ¯ä¸ä¸ªç»å¯¹è·¯å¾ã
import { name as squareName, draw } from "./modules/shapes/square.js";
import { name as circleName } from "https://example.com/shapes/circle.js";
å¯¼å ¥æ å°å 许å¼åè 卿¨¡åæ è¯ä¸æå®ï¼å ä¹ï¼ä»ä»¬æ³è¦çä»»æææ¬ï¼æ å°æä¾äºä¸ä¸ªç¸åºçå¼ï¼è¯¥å¼å¨è§£ææ¨¡åæ è¯ç¬¦æ¶æ¿æ¢ææ¬ã
裸模åä¸é¢ç导å
¥æ å°å®ä¹äºä¸ä¸ª imports
é®ï¼è¯¥é®å
·æå±æ§ä¸º square
å circle
çâæ¨¡åæ è¯ç¬¦æ å°âã
<script type="importmap">
{
"imports": {
"square": "./module/shapes/square.js",
"circle": "https://example.com/shapes/circle.js"
}
}
</script>
使ç¨å¯¼å ¥æ å°ï¼æä»¬å¯ä»¥å¯¼å ¥ä»¥ä¸ç¸åçæ¨¡åï¼ä½å¨æä»¬çæ¨¡åæ è¯ç¬¦è¦ä½¿ç¨â裸模åï¼bare moduleï¼âã
import { name as squareName, draw } from "square";
import { name as circleName } from "circle";
æ å°è·¯å¾åç¼
æ¨¡åæ è¯ç¬¦æ å°é®ä¹å¯ç¨äºéæ°æ å°æ¨¡åæ è¯ç¬¦ä¸çè·¯å¾åç¼ã请注æï¼å¨è¿ç§æ
åµä¸ï¼å±æ§åæ å°è·¯å¾é½å¿
é¡»æä¸ä¸ªå°¾éçæ£ææ ï¼/
ï¼ã
<script type="importmap">
{
"imports": {
"shapes/": "./module/shapes/",
"othershapes/": "https://example.com/modules/shapes/"
}
}
</script>
ç¶åæä»¬å¯ä»¥è¿æ ·å¯¼å ¥ circle 模åã
import { name as squareName, draw } from "shapes/circle.js";
æ¨¡åæ è¯ç¬¦æ å°é®ä¸çè·¯å¾
æ¨¡åæ è¯ç¬¦é®ä¸å¿
æ¯å个åè¯åç§°ï¼â裸模åçåç§°âï¼ãå®ä»¬ä¹å¯ä»¥å
å«è·¯å¾åé符æè
以路å¾åé符ç»å°¾ï¼æè
æ¯ç»å¯¹ URLï¼æè
以 /
ã./
æ ../
å¼å§çç¸å¯¹ URLã
{
"imports": {
"modules/shapes/": "./module/src/shapes/",
"modules/square": "./module/src/other/shapes/square.js",
"https://example.com/modules/square.js": "./module/src/other/shapes/square.js",
"../modules/shapes/": "/modules/shapes/"
}
}
å¦ææ¨¡åæ è¯ç¬¦æ å°ä¸å¯¹åºå 个å¯è½å¹é çæ¨¡åæ è¯ç¬¦é®ï¼åå°éæ©æå ·ä½çé®ï¼å³å ·æè¾é¿è·¯å¾/å¼çé®ï¼ã
å¨å¹é
ä¹åï¼./foo/../js/app.js
çæ¨¡å说æç¬¦å°è§£æä¸º ./js/app.js
ãè¿æå³çï¼å³ä½¿ ./js/app.js
çæ¨¡åæ è¯ç¬¦é®ä¸æ¨¡åæ è¯ç¬¦ä¸å®å
¨ç¸åï¼å®ä»¬ä¹æ¯å¹é
çã
ä½ å¯ä»¥ä½¿ç¨ scopes
鮿便 å°ï¼ä»
å½å¯¼å
¥æ¨¡åçèæ¬å
å«ç¹å®ç URL è·¯å¾æ¶æä½¿ç¨ãä»
å½å¯¼å
¥æ¨¡åçèæ¬å
å«ä¸ä¸ªæå®ç URL è·¯å¾æ¶ï¼ä½ æå¯ä»¥ä½¿ç¨ scopes
é®å»æä¾æ å°ã妿å è½½çèæ¬ URL å¹é
æä¾çè·¯å¾ï¼åå°ä½¿ç¨ä¸ä½ç¨åç¸å
³èçæ å°ãè¿å
è®¸æ ¹æ®æ£å¨å¯¼å
¥ç代ç 使ç¨ä¸åçæ¬çæ¨¡åã
ä¾å¦ï¼ä» æå è½½çæ¨¡åå å«ä»¥ä¸è·¯å¾ç URLï¼â/modules/customshapes/âï¼æ å°æä¼ä½¿ç¨ä½ç¨åæ å°ã
<script type="importmap">
{
"imports": {
"square": "./module/shapes/square.js"
},
"scopes": {
"/modules/customshapes/": {
"square": "https://example.com/modules/shapes/square.js"
}
}
}
</script>
妿å¤ä¸ªä½ç¨åä¸å¼ç¨ URL å¹é
ï¼åä½¿ç¨æå
·ä½çä½ç¨åè·¯å¾ï¼å
·ææé¿åç§°çä½ç¨åé®åç§°ï¼ãå¦ææ²¡æå¹é
çæ è¯ç¬¦ï¼æµè§å¨å°ä¼åè½å°ä¸ä¸ä¸ªæ´å
·ä½çä½ç¨åè·¯å¾ï¼ä»¥æ¤ç±»æ¨ï¼æåä¼åè½å° imports
é®çæ¨¡åæ è¯ç¬¦æ å°ã
以䏿¯å¯¼å ¥æ å° JSON 表示çâæ£å¼âå®ä¹ã
导å
¥æ å°å¿
é¡»æ¯ææç JSON å¯¹è±¡ï¼æå¤å¯ä»¥å®ä¹ä¸¤ä¸ªå¯éé®ï¼imports
å scopes
ãæ¯ä¸ªé®å¼å¿
é¡»æ¯å¯¹è±¡ï¼å¯ä»¥æ¯ç©ºã
imports
å¯é
è¯¥å¼æ¯æ¨¡åæ è¯ç¬¦æ å°ï¼å®æä¾å¯è½å¨ import
è¯å¥æ import()
è¿ç®ç¬¦ä¸åºç°çæ¨¡åæ è¯ç¬¦ææ¬ï¼å
¶ä¼å¨è§£ææ¶ä¸æ¿æ¢å®çææ¬ä¹é´å»ºç«æ å°ã
å¦ææ²¡æ scopes
è·¯å¾ URL å¹é
ï¼æè
妿å¹é
scopes
è·¯å¾ä¸çæ¨¡åæ è¯ç¬¦æ å°ä¸å
å«ä¸æ¨¡åæ è¯ç¬¦å¹é
çé®ï¼è¿å°æ¯æç´¢å¹é
æ¨¡åæ è¯ç¬¦çåéæ å°ã
<module specifier map>
âæ¨¡åæ è¯ç¬¦æ å°âæ¯ä¸ä¸ªææç JSON 对象ï¼å ¶ä¸é®æ¯å¨å¯¼å ¥æ¨¡åæ¶ï¼æ¨¡åæ è¯ç¬¦å¯è½åå¨çææ¬ï¼å¹¶ä¸ç¸åºç弿¶æ¨¡åæ è¯ç¬¦è§£æä¸ºå°åæ¶å°æ¿æ¢è¯ææ¬ç URL æè·¯å¾ã
æ¨¡åæ è¯ç¬¦æ å° JSON 对象æä»¥ä¸è¦æ±ï¼
/
ã./
æ ../
å¼å§çç¸å¯¹ URLã/
ç»å°¾ï¼é£ä¹ç¸åºçå¼ä¹å¿
须以 /
ç»å°¾ã带æå°¾éç /
é®å¯ä»¥ç¨ä½æ å°ï¼æéæ°æ å°ï¼æ¨¡åå°åçåç¼ãscopes
å¯é
ä½ç¨åå®ä¹äºç¹å®äºè·¯å¾çæ¨¡åæ è¯ç¬¦æ å°ï¼è¿å 许æ å°çéæ©åå³äºå¯¼å ¥æ¨¡åç代ç è·¯å¾ã
ä½ç¨å对象æ¯ä¸ä¸ªææç JSON 对象ï¼å
¶æ¯ä¸ªå±æ§é½æ¯ä¸ä¸ª <scope key>
ï¼URL è·¯å¾ï¼ï¼å¹¶ä¸ç¸åºç弿¯ä¸ä¸ª <module specifier map>
ã
妿坼å
¥æ¨¡åèæ¬ç URL å¹é
<scope key>
è·¯å¾ï¼åé¦å
æ£æ¥ä¸è¯¥é®å
³èç <module specifier map>
弿¯å¦å¹é
æ è¯ç¬¦ç¬¦ã妿æå¤ä¸ªå¹é
çä½ç¨åé®ï¼åé¦å
æ£æ¥ä¸æå
·ä½/åµå¥çä½ç¨åè·¯å¾å
³èç弿¯å¦å¹é
æ¨¡åæ è¯ç¬¦ã妿任ä½å¹é
çä½ç¨åæ¨¡åæ è¯ç¬¦æ å°ä¸æ²¡æå¹é
çæ¨¡åæ è¯ç¬¦é®ï¼åä½¿ç¨ imports
ä¸ï¼å¤ç¨çæ¨¡åæ è¯ç¬¦æ å°ã
请注æï¼ä½ç¨åä¸ä¼æ¹åå°åçè§£ææ¹å¼ï¼ç¸å¯¹å°åæ»æ¯è§£æä¸ºå¯¼å ¥æ å°çåºç¡ URLã
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