Ionic 2 + Typescript + Babel (для использования async/await с ES5)

Я хотел бы использовать async/await в проекте ionic 2. Поскольку async/await для ES5 не подходит для Typescript 2.0: есть ли способ настроить приложение ionic 2 таким образом, чтобы Typescript транспилировал его в ES6 (т. е. операторы async/await не изменялись), который затем преобразуется Babel на ES5, чтобы он работал с братьями, которые не поддерживают async/await?


person highwaychile    schedule 12.07.2016    source источник


Ответы (1)


ОБНОВЛЕНИЕ RC:

Что касается Ionic RC, старый ответ перестал работать. Есть несколько способов сделать это. Большинство из них связаны с взломом процесса сборки в модуле node. Самый простой — переключить uglifyjs на версию гармонии, которая поддерживает es6.

node_modules/@ionic/app-scripts/package.json

Этот файл содержит uglify js, который использует сборка ionic.

Переключите версию uglify js на:

"uglify-js": "git://github.com/mishoo/UglifyJS2.git#harmony

После этого запустите npm install в этой папке и все

Ionic бета-ответ

К счастью для вас, ionic gulp предлагает такие услуги. Что вам нужно, так это babelify и ionic-gulp-browesify-typescript-babel Прежде всего переключитесь с typescript на typescript babel и добавьте babelify в ваш package.json

это

"ionic-gulp-browserify-typescript": "2.0.0",

к этому

"babelify": "7.3.0",
"ionic-gulp-browserify-typescript-babel": "^2.0.2",

Теперь перейдите к вашему gulpfile.json

Здесь переключите свой модуль с

var buildBrowserify = require('ionic-gulp-browserify-typescript');

to

var buildBrowserify = require('ionic-gulp-browserify-typescript-babel');

Теперь вы можете запустить npm install. Когда вы попытаетесь запустить проект, вы, скорее всего, получите сообщение об ошибке от Babel о том, что ему не хватает плагинов и пресетов. Используйте npm для их установки в соответствии с вашими потребностями. Он также запросит у вас пресеты es2015, которые вы должны установить. Дополнительную информацию об этом можно найти на странице https://babeljs.io/docs/plugins/

person misha130    schedule 12.07.2016