let gulp = require('gulp'); let ts = require('gulp-typescript'); let uglify = require('gulp-uglify'); let babel = require('gulp-babel'); let plumber = require('gulp-plumber'); let tsp = ts.createProject('tsconfig.json'); //常量配置 const PATHS = { scripts:['./src/**/*.ts'], output:'./build', minifyJs: './build/**/*.js' }; //编译ts文件为js gulp.task('build-ts',function(){ return tsp.src() .pipe(plumber()) .pipe(tsp()) .pipe(gulp.dest(PATHS.output)); }); // 压缩混淆转换js代码 gulp.task('minify-js',function(){ gulp.src(PATHS.minifyJs) .pipe(babel({ presets: ['env'] })) .pipe(uglify({ ie8: true })) .pipe(gulp.dest(PATHS.output)); }); //当ts文件变化,重新编译ts文件为js gulp.task('watch-ts',function(){ gulp.watch(PATHS.scripts,['build-ts'],['minify-js']); }); // 复制 RSA非对称加密的 api 接口加密文件到build文件夹 gulp.task('copy',function(){ gulp.src('src/rsa/*.pem') .pipe(gulp.dest(`${PATHS.output}/rsa`)); }); //开发任务 gulp.task('dev',['build-ts','minify-js','watch-ts','copy']);