[英]Why can't modules be imported in standard JavaScript?
我需要使用僅作為模塊提供的 Javascript 庫( https://unpkg.com/troika-3d-text@0.19.0/dist/textmesh-standalone.esm.js?module )。 當我嘗試在我的非模塊腳本build.js中導入 class TextMesh時,控制台給了我錯誤消息:
不能在模塊外使用 import 語句
所以我需要讓build.js成為一個模塊。 但是我有許多非模塊腳本,它們依賴於build.js ,現在也需要成為模塊。 而且我還有許多其他非模塊腳本,它們依賴於它們,然后它們也需要成為模塊。 等等, ...
我對 JavaScript 模塊概念的誤解在哪里,因為它不能成為模塊的意圖,所有直接依賴於“第一個”模塊的腳本也必須成為一個模塊?!
即使在非模塊腳本中,您也可以使用動態import()
:
(async()=>{ const { TextMesh } = await import("https://unpkg.com/troika-3d-text@0.19.0/dist/textmesh-standalone.esm.js?module"); console.log( TextMesh ); })();
包括腳本屬性module
:
<script type="module" src="jsFile.js"></script>
如果要使用 Node.js 環境中的模塊模塊,請使用擴展名.mjs 命名文件並使用以下命令運行文件:
node --experimental-modules jsFile.mjs
您必須使用type="module"
屬性告訴瀏覽器腳本是一個模塊,例如
<script src="source_url" type="module"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.