2016-10-07 2 views
4

угловой кли использует ES6 модули как формат вывода Машинопись: В tsconfig.json:Как работает угло-cli с модулями ES6?

{ 
    "compilerOptions": { 
     "modules": "es6", 
     "target": "es5", 
     ... 

Как это обрабатывается WebPack позже, чтобы заставить ее работать в ES5?

Если я правильно понимаю, многие проекты используют babel для работы модулей es6, но я не нашел ссылки на babel внутри angular-cli.

Я пытаюсь создать проект webpack с самого начала, потому что выяснилось, что конфигурация webpack, которую использует угловой кли, просто недостаточно/достаточно гибка для нашего проекта.

Когда я пытался использовать модули es6, я закончил с необработанными операциями «import» в моем «комплекте» js-файле, поэтому, очевидно, я делаю что-то неправильно.

ответ

2

угловой консоли использует webpack 2, который поддерживает ESM (модули es6) Итак, когда машинопись будет скомпилирована, она компилируется в es5, но сохраняет все оператор импорта s как модули стиля es6.

тогда webpack 2 может оптимизировать модули es6 с помощью статического анализа и встряхивания дерева для удаления неиспользуемых фрагментов кода и неиспользуемых модулей.

Так что вы, вероятно, ошибаетесь, использует webpack 1, который не поддерживает модули es6.

+0

В качестве примечания: Treeshaking не работает. Подробности здесь: https://github.com/webpack/webpack/issues/2899 – schlingel

0

Итак, я узнал, что

  • угловатые-кли использует WebPack 2 BETA
  • WebPack 2 бета имеет встроенную поддержку ES6 модулей

См What's new in webpack 2

0

Просто измените цель в файле tsconfig.json с es5 на es6, все остальные элементы, такие как модуль и lib, уже поддерживают es6.

enter image description here {

"target": "es6", 

}

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