将Bundle从BundleConfig.cs转换为gulp

时间:2018-04-23 17:59:45

标签: asp.net-mvc gulp bundle

我在RegisterBundles()文件的BundleConfig.cs方法中有以下捆绑包:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    "~/Scripts/jquery-{version}.js",
    "~/Scripts/jquery.unobtrusive-ajax.js",
    "~/Scripts/jquery.serializeObject.js",
    // https://raw.githubusercontent.com/mathiasbynens/he/master/he.js
    "~/Scripts/he.js"));

它们都在.min.js文件夹中有缩小版本(Scripts),因此不需要进行缩小。由于它们是供应商库,因此也不需要进行转换。它们只需要使用现有的缩小版本作为一个捆绑添加。

我一直在寻找this来帮助我。这是我迄今为止所得到的:

gulp.task('scripts', function() {
    return gulp.src
        ([
        "Scripts/jquery-{version}.min.js",  // --> what glob do you use for {version}?
        "Scripts/jquery.unobtrusive-ajax.min.js",
        "Scripts/jquery.serializeObject.min.js",
        "Scripts/he.min.js"
        ])
    .pipe(concat('bundle.js'))
    .pipe(gulp.dest('src/js/'));
});

注意{version}行。使用BundleConfig.cs,它目前正在抓取jquery-3.2.1.min.js,以及我放在那里的任何未来的东西。使用glob模式是否有相同的方法可以做到这一点?

另外,以上是在gulp中捆绑供应商库的正确方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

只需使用*(星号)字符即可。

gulp.task('scripts', function() {
    return gulp.src([
            "Scripts/jquery-*.min.js", // --> what glob do you use for {version}?
            "Scripts/jquery.unobtrusive-ajax.min.js",
            "Scripts/jquery.serializeObject.min.js",
            "Scripts/he.min.js"
        ])
        .pipe(concat('bundle.js'))
        .pipe(gulp.dest('src/js/'));
});

然后,它将使用所有jQuery文件,无论它们具有哪个版本。