我正在努力完成关于压缩更少和缩小css的gulp任务,唯一的麻烦就是我需要在3个不同的环境(本地,开发,生产)中使用3个不同的硬件编码3个不同的变量。每次删除它后,我都会交换正确版本的正确环境(原始文件)。 在main.less文件中,我包含original.less文件。
(Mi英语和解释技巧不亮)
gulp.task('before-less', function(cb) {
if(gutil.env.dev === true) {
gutil.log(' preprod environment \n'); gulp.src('path/to/dev.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));
} else if (gutil.env.prod === true) {
gutil.log(' prod environment \n');
gulp.src('path/to/prod.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));
} else {
gutil.log(' local environment \n');
gulp.src('path/to/local.less').pipe(rename('original.less')).pipe(gulp.dest('path/to/css'));
}
});
gulp.task('less', ['before-less'], function() {
gutil.log(' LESSing ');
gulp.src(rute + 'css/*.less')
.pipe(less({
paths: [path.join(__dirname, 'less', 'includes')]
})).on('error', gutil.log)
.pipe(minifycss()) // Minify
.pipe(gulp.dest(rute + 'css'))
// .pipe(notify({message : "Modifications LESS" }))
.pipe(connect.reload());
});
我认为运行不正确的任务,但问题是当gulp少包括我的原始文件时,他们应该先读取var或者先包含它然后再读取var?
我包含了我的gulp任务,因为有人可以更好地组织这个“问题”
答案 0 :(得分:2)
我认为您应该考虑subtasks或针对不同的情况完成不同的任务。
我认为运行不正确的任务,但问题是什么时候 gulp少包含我的原始文件。他们应该阅读 var first或者首先包含它然后读取var?
Less使用延迟加载和变量的最后声明获胜,另请参阅http://lesscss.org/features/#variables-feature-lazy-loading。前面的含义是,如果在include之后再次声明相同的变量,它将覆盖代码中的所有变量。
答案 1 :(得分:0)
我找到了runSequence gulp包的解决方案。
因为我发现Gulp可以同步工作,并且mi第二个任务开始在mi第一个任务之前减少并且它们失败并且给我一个错误。
使用runSequence我可以做类似的事情:
var runSequence = require('run-sequence');
gulp.task('default', function(callback) {
runSequence('before-less', ['less'], callback);
});
同步查找有关gulp的更多信息,这可能是good other option and more 'elegant node' (using callbacks)。