我刚刚开始一个新项目,我真的想使用最近为打字稿发布的Async和Await东西。
但如果你的目标是ES6,那么它只能起作用(现在)。
所以我想知道是否有办法配置Visual Studio(2015 Update 1)来获取由Typescript输出的ES6 java脚本并将其转换为es5?
所以,我会有Typescript - > ES6 - > ES5。 (这将在Typescript支持Async / Await目标ES5之前实现。)
答案 0 :(得分:1)
//tsconfig.json
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "commonjs",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true
},
"exclude": [
".vscode",
"node_modules",
"typings",
"public"
]
}
最后,gulp文件 - 例如我的一个项目 - 用于转换ES6到ES5:
// gulpfile.js
'use strict';
var gulp = require("gulp"),
ts = require("gulp-typescript"),
babel = require("gulp-babel");
var tsSrc = [
'**/*.ts',
'!./node_modules/**',
'!./typings/**',
'!./vscode/**',
'!./public/**'
];
gulp.task("ts-babel", function () {
var tsProject = ts.createProject('tsconfig.json');
return gulp.src(tsSrc)
.pipe(tsProject())
.pipe(babel({
presets: ['es2015'],
plugins: [
'transform-runtime'
]
}))
.pipe(gulp.dest((function (f) { return f.base; })));
});
现在您可以使用命令 gulp ts-babel 来转换文件。并且不要忘记安装所需的npm-packages,如babel-preset-es2015和babel-plugin-transform-runtime。
<强> UPD 即可。感谢Ashok M A的关注。将管道(ts())更改为管道(tsProject())