javascript - 使用 Gulp 如何先编译 Typescript 然后连接结果并对其进行 uglify?

标签 javascript typescript gulp tsc gulp-typescript

我正在使用 Typescript 开发一个项目,目前我在编译 Typescript 时遇到问题,然后使用 Gulp 连接结果。

var gulp = require('gulp');
var ts = require('gulp-typescript');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');

gulp.task('default', function () {
    gulp.src('vendor/**/*.js')
        // I want to add ts files then combile and concat
        .gulp.src('src/**/*.ts')
        .pipe(sourcemaps.init())
        .pipe(ts({
            noImplicitAny: true,
            out: 'output.js'
        }))
        .pipe(concat('all.js'))
        .pipe(uglify());
        .pipe(sourcemaps.write('/'))
        .pipe(gulp.dest('./dist/'));
});

换言之,我需要做的是:

  1. 获取外部 JavaScript 库。
  2. 获取 Typescripts
  3. 使用 source map 编译 Typescripts
  4. 将结果连接到之前添加的 JavaScript
  5. 丑化他们。
  6. 创建源图。
  7. 将结果保存到某个文件夹中。

Update

Or just a way to make sure that the TypeScript is compiled before proceeding with concatenating the result with JavaScript.

最佳答案

如果你需要来自 npm 的 event-stream 包,那么你可以这样做:

var merge = require('event-stream').merge;

gulp.task('default', function() {
    var js = gulp.src('vendor/**/*.js');

    var ts = gulp.src('src/**/*.ts')
        .pipe(ts({
            noImplicitAny: true,
            out: 'output.js'
        }));

    return merge(js, ts)
        .pipe(concat('all.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist/'));
});

我不太清楚源 map 是如何工作的,但我相信这很容易弄清楚。

关于javascript - 使用 Gulp 如何先编译 Typescript 然后连接结果并对其进行 uglify?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160066/

相关文章:

node.js - 在 Windows 7 中打开太多文件(EMFILE 错误)

javascript - 当我单击粗刷按钮时,如何使用 javascript 在 html 中删除 Canvas 中的线宽

javascript - webpush,如果没有标签,如何打开窗口

node.js - Azure Function 应用程序(V3、nodejs)在 zip 部署后没有任何功能

javascript - 如何使用 nestfastify 编写来自 nestjs 异常过滤器的响应

node.js - 如果此任务在该文件更改时启动,如何运行任务(更改文件)并避免循环

javascript - 如何查看window.length的iframe/frames名称?

javascript - jQuery - 通过文本描述设置选择控件的选定值

javascript - Angular 2 : Check whether user's browser is compatible

javascript - gulpfile.js 错误地编译 css