ASP.Net Core 2.1:如何将Gulp与npm一起用于项目依赖项

时间:2018-06-26 20:19:51

标签: npm asp.net-core gulp asp.net-core-2.0

现在Bower已死于ASP.Net Core 2.0,我需要找到一种等效的方法来最小化/注入npm中的依赖项。

我安装了gulp,并使用npm将所有依赖项更新到项目根目录的node_modules文件夹中。下一步是将package.json文件中列出的所有依赖项注入到项目的wwwroot文件夹中。

我正在浏览Shawn Wildermuth的教程:https://wildermuth.com/2017/11/19/ASP-NET-Core-2-0-and-the-End-of-Bower,他的“ 更好的解决方案”要求在Gulp文件中列出依赖项目录:

// Dependency Dirs
var deps = {
    "jquery": {
        "dist/*": ""
    },
    "bootstrap": {
        "dist/**/*": ""
    },
};

然后创建一个任务,以遍历以下目录:

gulp.task("scripts", function () {
    var streams = [];

    for (var prop in deps) {
        console.log("Prepping Scripts for: " + prop);
        for (var itemProp in deps[prop]) {
            streams.push(gulp.src("node_modules/" + prop + "/" + itemProp)
                .pipe(gulp.dest("wwwroot/vendor/" + prop + "/" + deps[prop][itemProp])));
        }
    }

    return merge(streams);
});

可以在不列出Gulp文件中所有依赖项目录的情况下完成此操作吗?然后,扫描package.json文件以携带{{1 }}文件夹到node_modules

这是我的wwwroot

package.json

这是我的{ "version": "1.0.0", "name": "asp.net", "dependencies": { "jquery": "3.3.1", "bootstrap": "4.1.1" }, "devDependencies": { "gulp": "3.9.1", "gulp-concat": "2.6.1", "gulp-cssmin": "0.1.7", "gulp-uglify": "2.0.1", "rimraf": "2.6.1" } } 的其余部分:

gulpfile.js

我已经看到一些解决方案,它们只是从/// <binding BeforeBuild='clean, min, scripts' Clean='clean' /> "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"]); 文件夹中取出所有内容,但这将是一个巨大的(不必要的)上传到服务器,这是我不会做的。

有帮助吗?

0 个答案:

没有答案