gulp 不同文件中的变量较少

less variables in different files with gulp

我正在做一个 gulp 任务,关于减少压缩和缩小 css,唯一麻烦的一点是我需要在 3 个不同的环境(本地,本地,开发、生产)和 3 files.less。每次删除它(原始文件)后,我都会交换正确环境的正确版本。 在 main.less 文件中,我包含了 original.less 文件。

(米英语和解说技巧不亮)

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 的任务运行正确,但问题是当 gulp less 包含我的 original.less 文件时,他们应该先读取 var 或者先包含它然后再包含读取 var?

我包括我的 gulp 任务,因为有人对此有更好的组织 "problem"

我认为你应该考虑subtasks或根据你的不同情况完成不同的任务。

The task of less I think that runs correctly, but the question is when the gulp less include my file of original.less they should be read the var first or they include it first and later read the var?

Less 使用延迟加载和变量的最后声明获胜,另请参见 http://lesscss.org/features/#variables-feature-lazy-loading。前面的意思是,如果您在包含之后再次声明同一个变量,它将覆盖您代码中所有地方的变量。

我找到了 runSequence gulp 包的解决方案。

因为我发现 Gulp 可以同步工作,第二个任务 less 在第一个任务 before-less 之后开始,它们失败并给我一个错误。

使用 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)