[英]How actually ECMA-Script 2015 (and above) module loading through import statement works behind the scenes?
由於大多數情況下,我們使用模塊並通過Babel之類的工具import
轉譯為import
語句,所以我對本機Web瀏覽器的實現將如何使用所謂的import
語句加載外部文件很感興趣。
可以在XmlHttpRequest
使用XmlHttpRequest
/ XmlHttpRequest2
加載模塊嗎?
整個標准AFAIK將一個程序化API定義為System
全局變量,其中存在諸如System.define
方法來評估JavaScript源代碼並將其注冊為命名模塊。
這是否意味着實際的模塊系統實現將無法涵蓋外部文件模塊的加載(意味着庫/框架或您自己的原始JavaScript代碼應使用XmlHttpRequest
獲取源代碼?)
WHATWG正在積極開發一種加載程序標准 ,該標准將處理瀏覽器中的加載: http : //whatwg.github.io/loader/
由於這項工作仍在進行中,因此情況可能仍會改變。 據我所知,沒有指定瀏覽器加載文件的確切方式,但是很可能它將使用 Fetch
API (XmlHttpRequest2的基於Promise的替代品)。
最后,您應該能夠將模塊語法與腳本標簽一起使用,並且瀏覽器(或您的JS環境是什么)將處理加載:
<script type="module">
import x from 'y';
import a from 'b';
...
</script>
要么
<script type="module" src="y.js"></script>
當前,瀏覽器處於不同的實現點:
請隨時糾正我或擴展此答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.