如何通过 Bower 安装 GULP bundel 库,ASP.Net 5

How to have GULP bundel libraries installed by Bower, ASP.Net 5

我已经使用新的 Bower 系统在我的 ASP.Net 5 应用程序中安装了 jQueryjQuery-Validation。这创建了一个名为 lib 的文件夹,其中包含两个包的文件夹。在包的文件夹中有很多文件和子文件夹,经过一番挖掘后看起来我只需要使用 dist 文件夹中的 .js 文件。

我也在使用 gulp 进行捆绑和缩小,但我不确定如何配置它,所以它会添加来自 dist 文件夹的文件以及我自己的自定义 JavaScript 文件。

我对 GulpBower 都很陌生,但到目前为止,它们看起来比旧的 NuGet 和 ASP.Net 麻烦、烦人和复杂得多 2.5捆绑和缩小方式。

我的Gulp(由VS2015为我生成): /// "use strict";

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

var paths = {
    webroot: "./wwwroot/"
};

paths.js = paths.webroot + "js/**/*.js";
paths.minJs = paths.webroot + "js/**/*.min.js";
paths.css = paths.webroot + "css/**/*.css";
paths.minCss = paths.webroot + "css/**/*.min.css";
paths.concatJsDest = paths.webroot + "js/site.min.js";
paths.concatCssDest = paths.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"]);

编辑: 我刚刚添加了 jquery.validatie.unobtrusive 并且它没有 dist 文件夹只有一些 json 文件和包根目录下的核心 .js 文件所以我如何确保我正在抓取所有正确的东西都在这里吗?

假设您的 dist 文件夹在 webroot 下:

paths.dist = paths.webroot + "dist/**/*.js";
..
gulp.task("min:js", function () {
return gulp.src([paths.js, paths.dist, "!" + paths.minJs], { base: "." })

关键是您设置了 gulp 从中提取文件的源文件夹。注意到我将我的 paths.dist 添加到数组了吗?这会将该文件夹及其下的所有 js 文件添加到 gulp。如果您需要另一个文件夹,请将另一个 属性 添加到路径并将其添加到数组中。