gulp在不同文件中的变量较少

时间:2015-02-11 15:10:15

标签: less gulp gulp-less

我正在努力完成关于压缩更少和缩小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任务,因为有人可以更好地组织这个“问题”

2 个答案:

答案 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);
  });

source

同步查找有关gulp的更多信息,这可能是good other option and more 'elegant node' (using callbacks)