6

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

阅读文档已经开始让我感到困惑。我看到很多异步调用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可以实现这些吗?

4

1 回答 1

9

这个用例正是 SystemJS 的设计目的。

你可以写:

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

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

于 2014-09-25T18:43:53.023 回答