使用ES6语法动态导入JavaScript模块?

乔希·M。

是ES2015 +,如何动态导入模块?

例如,而不是...

import {SomeClass} from 'lib/whatever/some-class';

我在运行时不知道路径,所以我想将路径存储在变量中,并希望从该模块中导入特定内容:

function doDynamicStuff(path) {
    let importedThing = ...; //import * as importedThing from path;
    let thingIReallyWant = importedThing.someExportedVariable;

    ...
}

我不确定要使用哪种语法,或者根本不可能做到这一点。我尝试使用,let importedThing = require(path);但我们没有使用RequireJS

Zhegan

ES2015不支持按设计动态导入。

在当前的JavaScript模块系统中,您必须执行代码才能找出导入和导出的内容。这就是ECMAScript 6破坏这些系统的主要原因:通过将模块系统构建为语言,您可以在语法上强制执行静态模块结构。

...

模块的结构是静态的,这意味着您可以在编译时(静态)确定导入和导出–您只需要查看源代码,而不必执行它。

来自ECMAScript 6模块:最终语法

要动态导入模块,您必须显式使用模块加载器(例如RequireJSSystemJS

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章