4

我正在尝试注释和缩小 systemjs 角度项目。Systemjs 带有一个构建功能,但它不是“gulp-aware”。可以向构建器传递一个选项来缩小,但 ng-annotate 没有一个选项,所以我需要 gulp 来代替我做这两个。

gulp.task('bundle', function () {
    var options = {}
    builder.buildStatic('./assets/app/app.js', options)
    .then(function(data) {
        console.log("then called");
        // make data available for another task            
    });

我怎样才能将以上内容与

gulp.task('productionApp', function() {
    return [source the output from 'bundle']
    .pipe(ngannotate())
    .pipe(uglify())
    .pipe(gulp.dest('./dist'));
});

我可以将第一个任务输出到一个文件,然后再.src输入,但这不是最好的方法吗?

4

2 回答 2

1

最简单的方法是将其保存在缓冲区(实际上是一个简单的对象)中,然后像使用src.

Gulp 的存储库包含一个如何完成的方法

注意:您应该让所有这些load-*任务在一开始就运行,您可以使用run-sequence它们已经完成的操作,也可以将它们作为“真实”任务的依赖项。

于 2015-09-27T10:38:25.287 回答
0

npm 上的yargs包导出对象argv,这是命令行参数的非常巧妙的表示。例如,调用

gulp -a test -b 123 my-task

在运行期间由argv具有值的参数表示

{ a: 'test', b: 123 }

它被传递给 gulp 任务my-task,并在它之前传递给它的所有前辈。

如果前任之一分配了一个新的道具argv

argv.newProp = 'newValue'

该道具将可供其所有后继者使用,包括您真正想要执行的任务。

该指令const { argv } = require('yargs')将放在 gulpfile 的开头,并且可以使用别名和默认值来丰富它。参考在这里

于 2018-09-14T13:03:37.770 回答