Jos*_* M. 5 javascript import ecmascript-6
是ES2015 +,我该如何动态导入模块?
而不是......
import {SomeClass} from 'lib/whatever/some-class';
Run Code Online (Sandbox Code Playgroud)
我不知道运行时的路径,所以我希望将路径存储在变量中,并且我想从该模块导入特定的东西:
function doDynamicStuff(path) {
let importedThing = ...; //import * as importedThing from path;
let thingIReallyWant = importedThing.someExportedVariable;
...
}
Run Code Online (Sandbox Code Playgroud)
我不确定使用什么语法,或者根本不可能这样做.我尝试过使用,let importedThing = require(path);但我们没有使用RequireJS.
ES2015 在设计上不支持动态导入。
\n\n\n\n在当前的 JavaScript 模块系统中,您必须执行代码才能找出导入和导出的内容。这就是 ECMAScript 6 打破这些系统的主要原因:通过将模块系统构建到语言中,您可以在语法上强制执行静态模块结构。
\n...
\nmodule\xe2\x80\x99s 结构是静态的意味着您可以在编译时确定导入和导出(静态)\xe2\x80\x93 你只需要查看源代码,你不需要\xe2\x80\x99来执行它。
\n
要动态导入模块,您必须显式使用模块加载器(例如RequireJS或SystemJS)
\n