我最近使用import {variable} from 'ES6module'语法编写了许多ES6,并使用traceur-compiler在浏览器中编译了代码。我开始研究systemjs,因为它似乎可以允许我使用相同的语法来导入AMD,commonJS和ES6模块。

但是,阅读文档开始使我感到困惑。我看到很多异步调用,例如System.import('path/to/module').then(function(variable) { ... }),我不习惯用于依赖项导入。

我读过Practical workflows for ES6 modules,它涵盖了许多不同的工作流程,没有一个涉及在运行时导入ES6模块和AMD/commonjs模块。我在想这样的事情:

import {myObject} from 'my/es6/module';
import {_} from 'lib/underscore';

或如果不是,则至少:
import {myObject} from 'my/es6/module';
var _ = require('lib/underscore');

这两种可能在systemjs中使用吗?

最佳答案

该用例正是SystemJS设计的目的。

你可以写:

import {myObject} from 'my/es6/module';
import _ from 'lib/underscore';

原因是因为SystemJS中的CommonJS,AMD和Global模块被视为仅导出default属性,该属性对应于上面的默认导入语法。

关于module - 使用同步语法在运行时导入commonJS,AMD和ES6模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25878390/

10-13 02:09