我想要实现的是在构建开始之前将我的scss编译并缩小为css,这样如果我即时运行Web应用程序,它将构建,gulp将编译scss并缩小它,一旦Web应用程序打开,它将拥有新的css而不必记住在构建/运行我的解决方案之前运行gulp任务。
目前我有这个设置:
使用此代码:
/// <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
任务,尽管这似乎不会发生。
我做错了什么?我理解错了吗?
谢谢。
答案 0 :(得分:0)
事实证明,它按预期工作,但正如马克所说,按照惯例,确实给每个gulp任务一个返回声明。
我遇到的问题不是语法问题,而是(可能)Visual Studio的问题。
当我的gulp任务运行时,它删除了我的css文件夹中的文件,并创建了新的文件,这很好用,但是我已经打开了旧的.css文件,并且Visual Studio将不会加载任何更改,因为该文件不再存在。它在某种代码中是开放的。如果我试图双击解决方案资源管理器中的相应文件,它只会指向我已经打开的那个(即使我已经打开的那个不再存在),它没有更改。但是,关闭此文件然后重新打开它会加载更改。我认为这是一个视觉工作室问题,而不是一个大问题。