将捆绑包从 BundleConfig.cs 转换为 gulp

Convert bundle from BundleConfig.cs to gulp

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

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

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

我一直在寻找 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,以及我放在那里的任何未来的。 gulp 中是否有使用 glob 模式执行此操作的等效方法?

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

谢谢。

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

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 文件,无论它们是哪个版本。