使用gulp构建TypeScript项目

使用Gulp构建TypeScript,在Gulp管道里添加BrowserifyuglifyWatchify。 它还包涵了 Babel的功能,通过使用Babelify
Watchify 启动Gulp并保持运行状态,当你保存文件时自动编译。 帮你进入到编辑-保存-刷新浏览器的循环中。
Browserify 把这个工程由Node.js环境移到浏览器环境里。 把所有模块捆绑成一个JavaScript文件。
Uglify 帮你压缩代码,将花费更少的时间去下载它们。
参考Typescript中文网·Gulp

文件结构
myProject
|--src
    |--index.html
    |--ts
    |--css
|--dist
|--package.json
|--gulpfile.js
|--tsconfig.json
package.json
{
  "name": "tsPlayGround",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "gulp": "^3.9.1",
    "gulp-cli": "^2.0.1",
    "gulp-typescript": "^5.0.0-alpha.3",
    "gulp-util": "^3.0.8",
    "typescript": "^3.0.1",
    "vinyl-source-stream": "^2.0.0",
    "watchify": "^3.11.0"
  },
  "devDependencies": {
    "browserify": "^16.2.2",
    "gulp-sourcemaps": "^2.6.4",
    "gulp-uglify": "^3.0.1",
    "tsify": "^4.0.0",
    "vinyl-buffer": "^1.0.1"
  }
}
gulpfile.js
var gulp = require("gulp");
var browserify = require("browserify");
var source = require('vinyl-source-stream');
var watchify = require("watchify");
var tsify = require("tsify");
var gutil = require("gulp-util");
var uglify = require('gulp-uglify');
var paths = {
  pages: ['src/*.html']
};
var sourcemaps = require('gulp-sourcemaps');
var buffer = require('vinyl-buffer');

var watchedBrowserify = watchify(browserify({
  basedir: '.',
  debug: true,
  entries: ['src/main.ts'],
  cache: {},
  packageCache: {}
}).plugin(tsify));

gulp.task("copy-html", function () {
  return gulp.src(paths.pages)
    .pipe(gulp.dest("dist"));
});

function bundle() {
  return watchedBrowserify
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({
      loadMaps: true
    }))
    .pipe(uglify())
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest("dist"));
}

gulp.task("default", ["copy-html"], bundle);
watchedBrowserify.on("update", bundle);
watchedBrowserify.on("log", gutil.log);
tsconfig.json
{
  "files": [
    "src/main.ts"
  ],
  "compilerOptions": {
    "noImplicitAny": true,
    "target": "es3"
  }
}
步骤
  1. 建立文件夹及上面三个文件。
  2. src文件夹中建立main.ts文件
  3. 在根目录npm初始化 npm init
  4. 在根目录下npm install 安装依赖包
  5. gulp 命令构建,构建后gulp会保持运行状态
  6. 每次保存文件后gulp会通过watchedBrowserify插件自动生成编译, 在浏览器中手动刷新可看到结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一张彩票,中了巨奖,彩票的主的生活在千万的奖励下天翻地覆,游艇美女豪宅~然而他的背后是千万个人的失望。 我不会买彩...
    走着走着不记阅读 621评论 0 0
  • 姓名:刘淑红《六项精进》打卡 2月8日 公司:贝尔安亲云教育 【日精进打卡第54天】 诵读《六项精进》大纲1次,累...
    Sothis淑阅读 95评论 0 0
  • 2017年2月22日星期三我的一天 人的一生中,有多少事情是真正有意义的?我们可以不用说那么长,就比如说一天,一天...
    Ann的日记阅读 203评论 0 0
  • 今天状态丢失,资源没玩够,明天要加油了
    FineYoga刘洋阅读 121评论 0 0