typescript(es7)的gulp脚本

gulp脚本

可以使用async/await
typescript被编译成es6,再编译成es5

let gulp = require('gulp');
let gulp_clean = require('gulp-clean');
let gulp_ts = require('gulp-typescript');
let gulp_babel = require('gulp-babel');


// require('shelljs/global');
let watch_files = [
        "app/**/*.ts",
        "logic/**/*.ts"
    ];



gulp.task('clean', function() {
    return gulp.src(['release/**/*.js', 'dist/**/*.js'], {
            read: false
        })
        .pipe(gulp_clean());
});

gulp.task('tsc', (cb) => {

    let tsProject = gulp_ts.createProject('tsconfig.json');
    var tsResult = tsProject.src() // or tsProject.src() 
        .pipe(tsProject());

    return tsResult.js.pipe(gulp.dest('release'));
});

gulp.task('babel', cb => {
    let opts = {
        presets: ['es2015', 'es2016', 'es2017'],
        plugins: [
            ["transform-runtime", {
                "polyfill": false,
                "regenerator": true
            }]
        ]
    };
    return gulp.src('release/**/*.js')
        .pipe(gulp_babel(opts))
        .pipe(gulp.dest('dist/'));
});



// gulp.task('run_server',(cb)=>{
//     let exec = require('child_process').exec;
//     exec('node app');
//     cb();
// });

gulp.task('build', gulp.series('clean', 'tsc','babel'), (cb) => {
    console.log(new Date().toString());
    console.log('build done');
    cb();
});

gulp.task('watch',cb=>{
    gulp.watch(watch_files,gulp.series('build'));
    cb();
} );


gulp.task('default', gulp.series('build','watch'), () => {
    console.log('default done');

});



// gulp.task('clean',(cb)=>{
//     rm('-rf' ,'dist');
//     cb();
// });

package.json

{
  "name": "marsQuestion",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/tongjinle/marsQuestion.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/tongjinle/marsQuestion/issues"
  },
  "homepage": "https://github.com/tongjinle/marsQuestion#readme",
  "dependencies": {
    "@types/async": "^2.0.32",
    "@types/body-parser": "0.0.33",
    "@types/cookie-parser": "^1.3.30",
    "@types/express": "^4.0.33",
    "@types/express-session": "0.0.32",
    "@types/jasmine": "^2.5.35",
    "@types/mongoose": "^4.5.38",
    "@types/node": "^6.0.45",
    "@types/underscore": "^1.7.36",
    "async": "^2.1.2",
    "body-parser": "^1.15.2",
    "cookie-parser": "^1.4.3",
    "express": "^4.14.0",
    "express-session": "^1.15.0",
    "jasmine": "^2.5.2",
    "mongoose": "^4.6.4",
    "underscore": "^1.8.3"
  },
  "devDependencies": {
    "babel-plugin-transform-runtime": "^6.12.0",
  "babel-preset-es2015": "^6.13.2",
  "babel-preset-es2016": "^6.11.3",
  "babel-preset-es2017": "^6.14.0",

    "gulp": "github:gulpjs/gulp#4.0",
    "gulp-babel": "^6.1.2",
    "gulp-clean": "^0.3.2",
    "gulp-typescript": "^3.1.4",
    "typescript": "^2.1.5"
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值