在Gulpfile.js中定义文件顺序



我需要为某些.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 Core Bundling和Minifing Tasks的默认文件):

/// <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"]);

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

/* 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"

最新更新