在gulpfile.js中定义文件顺序

时间:2017-02-24 12:14:26

标签: gulp

我需要运行捆绑和缩小某些.js文件,但我需要为这些文件定义正确的顺序。

我该怎么做?

我的gulpfile.js文件,路径片段:

...
var paths = {
    js: webroot + "js/lib/**/*.js",
    minJs: webroot + "js/lib/**/*.min.js",
    css: webroot + "css/lib/**/*.css",
    minCss: webroot + "css/lib/**/*.min.css",
...

我需要按此顺序处理:

jquery.js
jquery-ui.custom.js
my-site.js

更新

整个gulpfile.js文件(这是asp.net核心捆绑和缩小任务的默认文件):

/// <binding Clean='clean' />
"use strict";

var gulp = require("gulp"),
    rimraf = require("rimraf"),
    concat = require("gulp-concat"),
    cssmin = require("gulp-cssmin"),
    uglify = require("gulp-uglify");

var webroot = "./wwwroot/";

var paths = {
    js: webroot + "js/lib/**/*.js",
    minJs: webroot + "js/lib/**/*.min.js",
    css: webroot + "css/lib/**/*.css",
    minCss: webroot + "css/lib/**/*.min.css",
    concatJsDest: webroot + "js/site.min.js",
    concatCssDest: webroot + "css/site.min.css"
};

gulp.task("clean:js", function (cb) {
    rimraf(paths.concatJsDest, cb);
});

gulp.task("clean:css", function (cb) {
    rimraf(paths.concatCssDest, cb);
});

gulp.task("clean", ["clean:js", "clean:css"]);

gulp.task("min:js", function () {
    return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
        .pipe(concat(paths.concatJsDest))
        .pipe(uglify())
        .pipe(gulp.dest("."));
});

gulp.task("min:css", function () {
    return gulp.src([paths.css, "!" + paths.minCss])
        .pipe(concat(paths.concatCssDest))
        .pipe(cssmin())
        .pipe(gulp.dest("."));
});

gulp.task("min", ["min:js", "min:css"]);

1 个答案:

答案 0 :(得分:1)

非常简单,您需要指定文件的路径数组(路径可以包含通配符),即:

/* REMEMBER TO USE FULL PATHS */
var order = [
    "jquery.js",
    "jquery-ui.custom.js",
    "my-site.js"
];
gulp.task("yourtask",function () {
    var sources = order.concat([
        webroot + "js/lib/**/*.js",
        webroot + "js/lib/**/*.min.js",
    ]);
    return gulp.src(sources)./* your operations goes here*/
});

此外, gulp 足够智能不重复已使用的文件,因此您可以像这样包含您的库: webroot + "js/lib/**/*.js"