繁体   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