【问题标题】:less variables in different files with gulp使用 gulp 减少不同文件中的变量
【发布时间】:2015-02-11 15:10:15
【问题描述】:

我正在处理一项关于压缩更少和缩小 css 的 gulp 任务,唯一麻烦的是我需要在 3 个不同环境(本地、开发、产品)中使用 3 个文件进行硬编码的 3 个不同变量。每次删除它(原始文件)后,我都会交换正确版本的正确环境。 在 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 任务,因为有人对这个“问题”有更好的组织

【问题讨论】:

    标签: less gulp gulp-less


    【解决方案1】:

    我觉得你应该考虑subtasks或者针对你的不同情况完成不同的任务。

    less 的任务我认为运行正确,但问题是何时 gulp less 包括我的 original.less 文件,它们应该被阅读 首先是 var,还是先包含它,然后再读取 var?

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

    【讨论】:

    • 感谢 gulp-subtasks 它应该可以解决问题...我用runSequence修复它
    【解决方案2】:

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

    因为我发现 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);
      });
    

    source

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

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 2017-05-18
      • 2011-02-28
      • 2015-10-31
      • 2016-08-20
      • 2011-11-21
      • 2012-04-27
      • 2020-03-27
      • 2022-01-01
      相关资源
      最近更新 更多