簡體   English   中英

為什么標准JavaScript不能導入模塊?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM