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