2015-02-11 46 views
2

我正在处理一个关于压缩较少和缩小CSS的gulp任务,唯一的麻烦点是我需要一些硬编码3个不同的变量在3个不同的环境(本地,dev,prod )与3个files.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()); 
}); 

少我认为正确运行,但问题是,当吞气少包括我original.less的文件,他们应该是任务首先阅读var,或者先包含它,然后再阅读var?

我包括我的人一饮而尽任务对这个“问题”

回答

2

一个更好的组织,我认为你应该考虑为您的不同情况subtasks或完成不同的任务。

少我认为正确运行,但问题是,当 吞气少包括我original.less的文件就应该先阅读 VAR或它们包括其第一和以后要阅读VAR任务?

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

+0

感谢咕-子任务它应该解决这个问题...我用[runSequence](https://www.npmjs.com/package/run-sequence) – davesnx 2015-02-12 10:02:41

0

我用runSequence gulp包找到解决方案。

因为我发现Gulp可以同步工作,而mi之后的第二个任务少开始之前的第一个任务,他们失败并给我一个错误。

随着runSequence我可以做这样的事情:

var runSequence = require('run-sequence'); 

    gulp.task('default', function(callback) { 
    runSequence('before-less', ['less'], callback); 
    }); 

source

找到有关一饮而尽更多信息同步,这可能是真的good other option and more 'elegant node' (using callbacks)