ts-learnings/projects/gulpfile.js

42 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-10-30 14:58:14 +08:00
// https://stackoverflow.com/questions/40823462/how-to-bundle-typescript-files-for-the-browser-user-gulp-and-tsproject
2019-03-27 11:40:36 +08:00
var gulp = require('gulp');
2019-10-30 14:58:14 +08:00
var clean = require('gulp-clean');
var sourcemaps = require('gulp-sourcemaps');
2019-03-27 11:40:36 +08:00
var ts = require('gulp-typescript');
2019-10-30 14:58:14 +08:00
gulp.task('clean', () => {
return gulp
.src([
'./dist/'
], { read: false, allowEmpty: true })
.pipe(clean());
});
2019-03-27 08:31:28 +08:00
2019-10-30 14:58:14 +08:00
gulp.task("transpile-ts", () => {
var tsProject = ts.createProject('tsconfig.json',{
outFile: "app.js"
});
return tsProject
.src()
.pipe(sourcemaps.init())
.pipe(tsProject()).js
.pipe(sourcemaps.write('./sourcemaps'))
.pipe(gulp.dest('./dist/js'));
2019-03-27 08:31:28 +08:00
});
2019-10-30 14:58:14 +08:00
gulp.task("copy-html", () => {
return gulp
.src(['./src/*.html'])
.pipe(gulp.dest("./dist/"));
2019-03-27 11:40:36 +08:00
});
2019-03-27 11:46:43 +08:00
// 这里 watch 里必须使用 gulp.series
2019-03-27 11:40:36 +08:00
gulp.task('watch', () => {
2019-10-30 15:31:19 +08:00
// 这里监视所有src及其所有子文件夹下的ts文件
gulp.watch('./src/**/*.ts', gulp.series('clean', 'copy-html', 'transpile-ts'));
2019-03-27 11:40:36 +08:00
});
2019-03-27 08:31:28 +08:00
2019-03-27 11:46:43 +08:00
// 这里必须要有一个 default 任务
2019-10-30 14:58:14 +08:00
gulp.task('default', gulp.series('clean', 'copy-html', 'transpile-ts', 'watch'));