модули es6 в commonjs с машинописным текстом под флагом гармонии узлов

Я использую TypeScript (1.6) с узлом под флагом --harmony, поэтому я хотел бы перенести синтаксис модуля es6 на commonjs.

Насколько я могу судить, я не могу этого сделать с TypeScript 1.6. Если я установил свою цель на es6, а модуль на commonjs, я получаю ошибку TypeScript -

Невозможно скомпилировать модули в commonjs, amd, system или umd при ориентации на ES6 или выше.

Почему TypeScript не компилируется в commonjs с целью ES6? Я полагаю, что многие люди захотят это сделать, поскольку узел еще не поддерживает модули ES6.

Я думал, что новая опция компилятора moduleResolution может решить эту проблему, но, похоже, она ничего не делает.

В настоящее время мне приходится использовать babel только для переноса синтаксиса модуля в commonjs, но я бы хотел удалить babel из своих сборок, чтобы я мог воспользоваться исходными картами.

Есть ли способ добиться этого? ПРИМЕЧАНИЕ: я не хочу переводить на ES5. Я хочу, чтобы мой JS работал как ES6 под флагом гармонии. Спасибо!


person Simon Trewhella    schedule 03.10.2015    source источник
comment
Вы пользуетесь каким-нибудь классом?   -  person Paleo    schedule 03.10.2015
comment
Да, я использую классы и ряд других функций es6   -  person Simon Trewhella    schedule 03.10.2015
comment
Ах! Узел с флагом --harmony может компилировать классы?   -  person Paleo    schedule 03.10.2015
comment
Да, последний узел понимает ключевое слово class   -  person Simon Trewhella    schedule 03.10.2015
comment
Ознакомьтесь с stackoverflow.com/questions/33101982/   -  person Remo H. Jansen    schedule 13.10.2015


Ответы (1)


Команда TypeScript добавит поддержку того, что вы ищете, в следующем выпуске. Вы можете подождать несколько недель / месяцев. В качестве альтернативы вы можете использовать Polyfill для загрузчика модулей ES6:

В Интернете доступно больше библиотек, подобных приведенным выше, просто проверьте, какая из них выполняет эту работу за вас, пока не поступит официальная поддержка --module с --target es6.

ОБНОВИТЬ

tsconfig.json

{
  "compilerOptions": {
    "target":"ES6",
    "moduleResolution": "classic",
  }
}
  • Поддержка ES6 с генераторами
  • Нет import данных, которые передаются из-за "moduleResolution": "classic"
person Remo H. Jansen    schedule 03.10.2015