2015-08-09 2 views
2

В демо-версии Angular2 используются Traceur и System.JS для реализации синтаксиса модуля ES6. Так как Typescript 1.5 теперь включает этот синтаксис, требуется ли еще отдельный загрузчик модуля ES6? Любые идеи о том, как обойтись без него?Поскольку TypeScript 1.5 включает в себя модули ES6, нужен ли загрузчик модуля ES6?

<head> 
    <title>Angular 2 Quickstart</title> 
    <script src="https://github.jspm.io/jmcriffey/[email protected]/traceur-runtime.js"></script> 
    <script src="https://jspm.io/[email protected]"></script> 
    <script src="https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js"></script> 
</head> 
<my-app></my-app> 
<script>System.import('app');</script> 

ответ

2

Всякий раз, когда вы transpile ES6 + код, который использует модули ES6 для ES5, вы должны решить для модульной системы, которая работает в ES5. Это могут быть CommonJS, AMD, SystemJS, UMD.

Даже если TypeScript станет надмножеством ES6 и будет реализовывать модули ES6, как только вы преобразуете свой код, вам необходимо использовать систему модулей, которую браузер понимает сегодня.

К сожалению, нет спецификаций, определяющих , как загружаются модули. Так что да, вам все равно нужно использовать что-то вроде SystemJS для загрузки модулей в ES5.

+0

Проблема в том, что я использую браузер для всего, и, похоже, нет возможности использовать браузер с угловым2. Я надеялся, что мне не нужен system.js. – wayofthefuture

+1

О, ну, в браузере используется синтаксис CommonJS, поэтому вы можете перевести A2 с помощью модулей CommonJS, и он должен работать :) – PascalPrecht

Смежные вопросы