• (二)用less+gulp+requireJs 搭建项目(gulp)


     gulp是自动化构建工具,基于node,需要安装node,如果你不了解node也没关系,先跟着来一遍再去了解node也不迟~

    首先去node官网下载安装包

    1.新建项目文件夹 在目录下shift+右键打开命令行工具;下图表示node已经装好

    2.现在想要做这样一个功能

    如上图:

    button.less中的颜色依赖于color.less

     需要实现:

    将两个less文件合并,而且生成css文件到css文件夹中:

    新建文件index.less,合并两个less文件

    这时候就要用到gulp

    3.安装gulp

    npm install --save-dev gulp

    安装完成后根目录下会多出一个文件夹--node_modules  里面是node安装的模块,然后查看gulp 的版本号 说明安装成功

    另外,还需要安装一些其他的包

    npm install --save-dev gulp-less//解析less
    
    npm install --save-dev gulp-autoprefixer//兼容浏览器
    
    npm install --save-dev gulp-minify-css//压缩css
    
    npm install --save-dev gulp-rename//文件+后缀

     3.接下来需要一个配置文件gulpfile.js,这个是必须要的,目的就是 告诉后台用什么解析less文件,生成的css放在哪里

     gulpfile.js:

    var gulp = require('gulp'),
        less = require('gulp-less'),
        prefix = require('gulp-autoprefixer'),
        minifyCss = require('gulp-minify-css'),
        rename = require('gulp-rename');
    
    gulp.task('Less', function (done) {
        gulp.src('less/index.less')//需要编译的less文件路径
            .pipe(less())//编译
            .pipe(prefix(['last 4 versions'], { cascade: true }))
            .pipe(minifyCss({
                keepSpecialComments: 0,//保留所有特殊前缀
                compatibility:'ie7'//保留ie7及以下兼容写法
            }))
            .pipe(rename({ extname: '.min.css' }))//后缀
            .pipe(gulp.dest('css/index.css'))//生成目录
            .on('end', done);//结束
    });

    这个文件的作用是,创建一个“Less”任务,将index下的index.less文件解析 ,压缩 生成到 css下

    4.接下来需要输入执行”Less”任务

    gulp Less

    上图表示编译成功,此时css下已经生成css文件,并且已经压缩

    如下图:

     5.接下来 还没完  因为这么写 你每次修改less文件都要执行一次“Less”任务才能完成编译

    我们需要自动监听less文件,只要文件被修改就执行‘Less’任务,gulp有的watch()函数可以完成这种需求

    在配置文件下添加如下代码:

    gulp.task('watch', function () {
        gulp.watch('less/*.less', ['Less']); //当有less文件发生改变时,调用Less任务
    });

    这样我们只要执行“watch”任务就可以一直监听less文件了

    gulp watch

    这样当你修改less文件时,gulp会为你自动编译!!!

    快去试试吧~~~

  • 相关阅读:
    yield* 表达式
    Set 对象和WeakSet对象
    洗牌算法
    filter() 方法创建一个新数组
    UTF8文件带BOM引起的问题
    ios的白屏坑
    css的字体样式怎么写
    npm全局安装失效修复
    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)解决方案
    linux下nginx的安装及配置
  • 原文地址:https://www.cnblogs.com/yaokunlun/p/6433821.html
Copyright © 2020-2023  润新知