Module 在运行时使用同步语法导入commonJS、AMD和ES6模块

Module 在运行时使用同步语法导入commonJS、AMD和ES6模块,module,ecmascript-6,systemjs,Module,Ecmascript 6,Systemjs,最近我写了很多ES6,使用了来自“ES6module”的import{variable}语法,并使用在浏览器中编译代码。我开始考虑,因为它似乎允许我使用相同的语法来导入AMD、commonJS和ES6模块 不过,阅读文档开始让我感到困惑。我看到很多异步调用,比如System.import('path/to/module')。然后(function(variable){…}),我不习惯于依赖项导入 我读过,它涵盖了许多不同的工作流,其中没有一个涉及在运行时导入ES6模块和AMD/commonjs模

最近我写了很多ES6,使用了来自“ES6module”的
import{variable}
语法,并使用在浏览器中编译代码。我开始考虑,因为它似乎允许我使用相同的语法来导入AMD、commonJS和ES6模块

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

我读过,它涵盖了许多不同的工作流,其中没有一个涉及在运行时导入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
属性,这与上面的默认导入语法相对应。

Awesome!我猜这也意味着以后从“lib/underline”调用
import是否重新使用已导入的模块?是-模块实例已共享。