构建 closure-compiler/typescript 前端工作流程时遇到问题

Problems building a closure-compiler/typescript front end workflow

我正在尝试使用 gulpclosure-compilertypescript 以及从私人 sinopia 存储库托管的 npm 模块来构建有用的工作流程。

最终目标如下:

(闭包编译器不是可选的,UglifyJS 在文件大小和性能方面没有执行我想要的优化级别)

当我的项目完全包含在我的源代码树中时(即我没有 npm install编辑任何模块。这是工作的 gulpfile:

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var size = require('gulp-size');
var server = require('gulp-live-server');
var typescript = require('gulp-typescript');
var closureCompiler = require('gulp-closure-compiler');

/** No minification */
gulp.task('compile-dev', function() {
    console.log("compile-dev at "+new Date())
    var b = browserify({baseDir: "src", debug: true})
        .add("src/main.ts")
        .plugin('tsify', { noImplicitAny: true, target: "es6"});
    b.bundle()
    .on('error', function(error) {
        console.error(error.toString());
    })
    .pipe(source("out.js"))
    .pipe(gulp.dest("www"))
})

/* minify with closure */
gulp.task('compile-closure', function () {
    gulp.src('src/**/*.ts')
    .pipe(typescript({target: "es6"}))
    .pipe(gulp.dest("build"))
    .pipe(closureCompiler({
        fileName: "out.js",
        compilerFlags: {
            language_in: "ES6",
            language_out: "ES5",
            compilation_level: "ADVANCED_OPTIMIZATIONS"
        }
    }))
    .pipe(gulp.dest("www"))
    .pipe(size({gzip: true, showFiles: true }))
});

现在我 运行 使用模块解决三个相互关联的问题:

那么我怎样才能:

这对于闭包编译器尚不可行,因为编译器不知道如何查找命名模块。唯一的选择是使用可以在编译之前消除命名模块引用的捆绑器。