在构建

时间:2017-05-13 17:23:39

标签: .net asp.net-core gulp

我想要实现的是在构建开始之前将我的scss编译并缩小为css,这样如果我即时运行Web应用程序,它将构建,gulp将编译scss并缩小它,一旦Web应用程序打开,它将拥有新的css而不必记住在构建/运行我的解决方案之前运行gulp任务。

目前我有这个设置:

enter image description here

使用此代码:

/// <binding BeforeBuild='compile:sass' />    
var gulp = require('gulp');
var sass = require('gulp-sass');
var cleanCSS = require('gulp-clean-css');
var webroot = "./wwwroot/";
var paths = {
    scss: webroot + "scss/*.scss",
    scssDest: webroot + "css/"
};
gulp.task('default', function () {
    // place code for your default task here
});
gulp.task('compile:sass', function () {
    gulp.src(paths.scss)
        .pipe(sass())
        .pipe(cleanCSS())
        .pipe(gulp.dest(paths.scssDest));
});
gulp.task("compile", ["compile:sass"]);

根据我的理解,这应该在构建开始之前运行compile:sass任务,尽管这似乎不会发生。

我做错了什么?我理解错了吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

事实证明,它按预期工作,但正如马克所说,按照惯例,确实给每个gulp任务一个返回声明。

我遇到的问题不是语法问题,而是(可能)Visual Studio的问题。

当我的gulp任务运行时,它删除了我的css文件夹中的文件,并创建了新的文件,这很好用,但是我已经打开了旧的.css文件,并且Visual Studio将不会加载任何更改,因为该文件不再存在。它在某种代码中是开放的。如果我试图双击解决方案资源管理器中的相应文件,它只会指向我已经打开的那个(即使我已经打开的那个不再存在),它没有更改。但是,关闭此文件然后重新打开它会加载更改。我认为这是一个视觉工作室问题,而不是一个大问题。