首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gulp包含变量进行更少的编译

使用Gulp包含变量进行更少的编译
EN

Stack Overflow用户
提问于 2015-08-13 11:58:07
回答 1查看 378关注 0票数 0

我正在做一个wordpress的主题,用更少的和吞咽。由于我需要调整引导程序+ fontaweseome的一些默认路径和值,所以我的自定义vars (overwrite.less)有一个较少的文件。但它根本不影响变量。

通过mainBowerFiles注入的文件较少,文档表示更少的vars支持延迟加载。(http://lesscss.org/features/#variables-feature-lazy-loading)

文件被缓存,以加快构建(< 10 ms),但即使没有-没有效果。

gulpfile.js:

代码语言:javascript
复制
'use strict';
var gulp = require('gulp');
var less = require('gulp-less');
var browserSync = require('browser-sync').create();
var util = require('gulp-util');
var sourceMaps = require('gulp-sourcemaps');
var del = require('del');
var cache = require('gulp-cached');
var remember = require('gulp-remember');
var concat = require('gulp-concat');
var minifyCss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var mainBowerFiles = require('main-bower-files');


var paths = {
    target: '../vagrant/www/wordpress/wp-content/themes/themename',
    bowerJs: mainBowerFiles('**/*.js'),
    bowerLess: mainBowerFiles('**/*.less'),
    lessFiles: ['overwrite.less','less/**.less'],
    jsFiles: ['js/**.js']
};

var allLess = paths.bowerLess.concat(paths.lessFiles);
var allJs = paths.bowerJs.concat(paths.jsFiles);



function compileLess() {
    var s = gulp.src(allLess);
    s = s.pipe(sourceMaps.init());
    s = s.pipe(cache('less'));
    s = s.pipe(less());
    s = s.pipe(remember('less'));
    s = s.pipe(minifyCss());
    s = s.pipe(concat('style.css'));
    s = s.pipe(sourceMaps.write('maps/'));
    return s.pipe(gulp.dest(paths.target));
}

function compileJs() {
    var s = gulp.src(allJs);
    s = s.pipe(sourceMaps.init());
    s = s.pipe(cache('js'));
    s = s.pipe(uglify());
    s = s.pipe(remember('js'));
    s = s.pipe(concat('app.js'));
    s = s.pipe(sourceMaps.write('maps/'));
    return s.pipe(gulp.dest(paths.target));
}


gulp.task('move', function() {
    var filesToMove = ['./*.php', './assets/**', 'bower_components/**', './partial/**'];
    gulp.src(filesToMove, { base: './' })
        .pipe(gulp.dest('../vagrant/www/wordpress/wp-content/themes/codecampus')).once('end', function () {
            browserSync.reload();
    });
});

gulp.task('browser-sync', function() {
            browserSync.init([], {
            proxy: "http://vccw.dev/"
        });
});


gulp.task('watch', function () {
    gulp.watch('less/**/*.less', ['less']);
    gulp.watch('js/**/*.js', ['js']);
    gulp.watch(['./*.php', './assets/**',  './partial/**'], ['move'])

});


gulp.task('less', function () {
    util.log('Compile less ...');
    browserSync.reload();
    return compileLess();
});


gulp.task('js', function () {
    util.log('Compile js ...');
    browserSync.reload();
    return compileJs();
});


gulp.task('clean', function (cb) {
    util.log('Delete old less ...');
    del([paths.target + '**/*'], {force: true}, cb);
});


//define tasks
gulp.task('default', [ 'clean', 'less', 'js' , 'move', 'watch', 'browser-sync'], function () {
    return util.log('Gulp is running!');
});
EN

回答 1

Stack Overflow用户

发布于 2015-08-14 06:57:06

解决方案1:

拆分保龄球少文件,加上覆盖和您的自定义样式。这样你就少了两个任务。

解决方案2:

将任何东西保存在一个任务中,并将modifyVars注入到较少的任务中

代码语言:javascript
复制
s = s.pipe(less({
    modifyVars: {
        "fa-font-path" : '"../custom/path/"',
         ...
        }
    }));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31987586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档