gulp与根和子文件夹连接

时间:2015-06-04 00:07:48

标签: gulp build-process gulp-watch gulp-concat

我已经制定了以下gulp构建流程。

gulp.task("watch", function(){
    gulp.watch("public/admin/js/**/*.js", ["login"]);
}

gulp.task("login", function() {
    var js = [
        "!public/admin/js/api",
        "public/admin/js/*.js",
        "public/admin/js/controller/**/*.js",
        "public/admin/js/model/**/*.js",
        "public/admin/js/view/**/*.js"
    ];
    gulp.src(js)
        .pipe(concat("app.min.js"))
        .pipe(gulp.dest("public/admin/js"));
});

1)我无法添加根目录中的文件。 public/admin/js/*.js,无效

2)我觉得有一些重复,如果有人可以帮我改写这个。简而言之,我想在/public/admin减去/public/admin/api

下连接所有内容

P.S。当然不想再从最后一次构建中包含app.min.js,这当然会在根目录上。

P.P.S 我已经反复为几个项目文件夹重复这个构建过程,重新使用这个逻辑的任何想法。现在我为每个文件夹设置不同的手表并构建他们的app.min.js。

1 个答案:

答案 0 :(得分:0)

“public / admin / js /”重复,并且我认为这些不是唯一使用它的任务。在这种情况下,为什么不通过您自己的配置文件中的module.exports将其设置为全局变量?这样你可以要求它并将其设置为$,在这种情况下你的任务看起来像:

module.exports.JSadmin = "public/admin/js/"

var $ = require('./globalConfig');

gulp.task("watch", function(){
    gulp.watch($.JSadmin + "**/*.js", ["login"]);
}

对于您的其他任务,您可以通过循环并附加基目录来创建动态数组,然后正常使用该数组作为src。

无法在root中添加文件,我相信它是因为你的排除语句是第一个(不记得原因),而且由于你说明要在你的数组中使用哪些子目录,因此没有必要。 / p>

查看glob syntax了解详情。