Ionic 2 + Typescript + Babel(用于与ES5一起使用async / await)

时间:2016-07-12 13:52:11

标签: typescript ionic-framework ionic2

我想在离子2项目中使用async / await。因为ES5的异步/等待没有使用于Typescript 2.0:有没有办法以这样的方式配置离子2应用程序,使得Typescript将其转换为ES6(即async / await语句不会被更改),然后由通知ES5,使其与不支持异步/等待的兄弟一起工作?

1 个答案:

答案 0 :(得分:4)

RC UPDATE:

从Ionic RC开始,旧答案停止了工作。 有几种方法可以做到这一点。其中大多数涉及在节点模块中破解构建过程。 最简单的方法是将uglifyjs切换为支持es6的和声版本。

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

此文件包含离子构建使用的uglify js。

将uglify js版本切换为:

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

之后运行npm install在这个文件夹上就可以了

离子Beta答案

幸运的是,离子gulp提供了这样的服务。 你需要的是babelify和ionic-gulp-browesify-typescript-babel 首先从typescript切换到typescript babel并在package.json中添加babelify

"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');

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

现在你可以运行npm install了。当您尝试运行该项目时,您很可能会从babel那里得到错误,因为它缺少插件和预设。使用npm根据您的需要安装它们。它还会询问您应该安装的es2015预设。有关详细信息,请查看https://babeljs.io/docs/plugins/