我正在做一项关于压缩更少、更小css的任务,唯一麻烦的是,我需要在3个不同的环境(本地、开发、生产)中用3个文件硬编码3个不同变量。less。每次删除它(原始文件)后,我都会交换正确版本的正确环境。在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());
});
less的任务我认为运行正确,但问题是,当gullowless包含我的original.less文件时,他们应该先读取var,还是先包含它,然后再读取var?
我把我的任务包括在内,让有人对这个"问题"有更好的组织
我认为你应该针对不同的情况考虑问题或完成不同的任务。
少的任务我认为是正确的,但问题是什么时候无咽包括我的原始文件。无咽应该阅读首先是var,还是他们先包含它,然后再读取var?
Less使用惰性加载,最后一次声明为变量获胜,另请参阅http://lesscss.org/features/#variables-具有延迟加载功能。前面的意思是,如果在include之后再次声明同一个变量,它将覆盖代码中的所有变量。
我用runSequence gump包找到了解决方案。
因为我发现Gulp可以同步工作,而mi second task less在mi first task before less之后开始,它们失败了,给了我一个错误。
使用runSequence,我可以做一些类似的事情:
var runSequence = require('run-sequence');
gulp.task('default', function(callback) {
runSequence('before-less', ['less'], callback);
});
源
同步地找到更多关于gump的信息——这可能是一个非常好的选择,也是一个更"优雅的节点"(使用回调)。