2014-09-16 2 views
7

최근에 많은 문자를 작성했으며 import {variable} from 'ES6module' 구문을 사용하고 브라우저에서 코드를 traceur-compiler으로 컴파일했습니다. 나는 그것이 동일한 구문을 사용하여 AMD, commonJS, ES6 모듈을 가져올 수있는 것처럼 보였으므로 systemjs을 살펴보기 시작했습니다.동기 구문으로 런타임에 commonJS, AMD 및 ES6 모듈 가져 오기

설명서를 읽으면 혼란 스럽습니다. 종속성 가져 오기에 익숙하지 않은 System.import('path/to/module').then(function(variable) { ... })과 같은 비동기 호출이 많이 있습니다.

나는 다양한 워크 플로우를 다루고 있는데, 런타임에는 AMD/commonjs 모듈 인 을 가져 오는 작업과 관련이 없습니다. 나는 이런 식으로 뭔가를 생각하고 있어요 :

import {myObject} from 'my/es6/module'; 
var _ = require('lib/underscore'); 

이 가능한 중 하나가 systemjs와 함께 위치 :
import {myObject} from 'my/es6/module'; 
import {_} from 'lib/underscore'; 

여부를 그 경우

, 적어도보다?

답변

9

이 유스 케이스는 SystemJS가 설계된 것입니다.

당신은 쓸 수 있습니다 : CommonJS, AMD와 SystemJS 글로벌 모듈 그들은 단지 위의 기본 가져 오기 구문에 해당하는 default 속성을 내보낼 경우로 취급되기 때문에

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

이유입니다.

+0

굉장! 그리고 이것은 또한 나중에'lib/underscore '에서 import _를 호출하면 이미 가져온 모듈을 다시 사용한다는 의미일까요? – bennlich

+0

예 - 모듈 인스턴스가 공유됩니다. – guybedford

관련 문제