• web工作流


    web工作流之Gulp学习

    Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。

    Gulp.js 是基于 Node.js 构建的,利用 Node.js 流的威力,你可以快速构建项目;

    首先我们要搭配环境;

    1、安装node.js,傻瓜式安装。

    2、npm的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。

    但这个npm服务器在国外,所以下载包的速度很慢,因此使用镜像cnpm

    安装镜像cnpm:

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    3、打开相应的文件夹创建一个package.json文件,它包括名称、版本、作者这些信息等

    命令式创建:

    cnpm init

    4、全局安装 gulp

    cnpm install -g gulp

    5、作为项目的开发依赖(devDependencies)安装

    cnpm install --save-dev gulp
    
    将gulp安装到局部环境中,生成node_modules

    6、在项目根目录下创建一个名为 gulpfile.js 的文件:

    var gulp = require('gulp');
    
    gulp.task('default', function() {
      // 将你的默认的任务代码放在这
    });

    require(“模块”)是需要安装模块的
    require(“模块”)有多少个安装多少个,不是命令会报错

    7、安装插件:

    如:
    cnpm install --save-dev gulp-concat
    
    cnpm install --save-dev 模块 模块 。。 。。
    
    可单个,可多个一起安装
    
    配置环境,因局部,不能再别的盘使用。
    
    可以根据package.json,安装插件
    
    命令:
    gulp install

    在当前文件夹打开cmd:shift+鼠标右击

    点击(在此处打开命令窗口)

    错误例子:

    这个说明在此环境下没有安装gulp,重新安装即可

    cnpm install --save-dev gulp

    命令打错出现,还有乱搞也会。

    所以这种错误暂时不懂,乱搞会出现的错误,目前只有重新配置这样解决做法了。

    还有一种错误是没有安装插件;安装一遍即可。

    只要会看错误行,就可以解决一些常见问题。

    gulpfile.js的编写例子:

    //加载模块
    
    var gulp=require("gulp");
    var concat=require("gulp-concat");
    var rename=require("gulp-rename");
    var uglify=require("gulp-uglify");
    var cssmin=require("gulp-minify-css");
    var htmlmin=require("gulp-htmlmin");
    var brw=require("browser-sync");
    /*压缩css*/
    gulp.task("mincss",function(){
        gulp.src("css/*.css")
        .pipe(cssmin())
        .pipe(gulp.dest('src/css'));
    });
    /*合并压缩重命名js*/
    gulp.task("concat",function(){
        gulp.src("js/*.js")
        .pipe(concat("all.js"))
        .pipe(gulp.dest("src"))
        .pipe(uglify())
        .pipe(rename({extname:'.min.js'}))
        .pipe(gulp.dest("src"));
    });
    
    /*压缩html*/
    var options={
        removeComments: true,//清除HTML注释
            collapseWhitespace: true,//压缩HTML
            collapseBooleanAttributes: true,//省略布尔属性的值 <input checked="true"/> ==> <input />
            removeEmptyAttributes: true,//删除所有空格作属性值 <input id="" /> ==> <input />
            removeScriptTypeAttributes: true,//删除<script>的type="text/javascript"
            removeStyleLinkTypeAttributes: true,//删除<style>和<link>的type="text/css"
            minifyJS: true,//压缩页面JS
            minifyCSS: true//压缩页面CSS
    }
    gulp.task("htmlmin",function(){
        gulp.src("*.html")
        .pipe(htmlmin(options))
        .pipe(gulp.dest("html"));
    });
    
    /*浏览器同步*/
    gulp.task("serve",function(){
        brw.init({
            files:["./*.html"],
            server:{baseDir:"./"}
        })
    });

    这个是编写方式,一般都是这样编写。很简单。这个使用,只要常常使用就很快熟练起来。

    报错一般是细节上的问题。

     默认:

    /*默认*/
    gulp.task("default",["mincss","concat","htmlmin"]);
    
    命令:
    gulp
    
    只要执行默认,就会一下子执行数组的里的任务,如:mincss,concat,htmlmin

    编译sass、自动添加css前缀和压缩+监听

    安装命令:

    cnpm install --save-dev gulp-rename gulp-minify-css gulp-sass gulp-notify gulp-autoprefixer

    gulpfile.js代码:

    var gulp=require("gulp");
    
    var rename=require("gulp-rename");
    var cssmin=require("gulp-minify-css");
    var sass = require('gulp-sass'),
        notify = require('gulp-notify'),
        autoprefixer = require('gulp-autoprefixer');
    
    // Styles
    gulp.task('styles', function() {
        //编译sass,编译指定目录下的sass
        return gulp.src('src/scss/*.scss')
        .pipe(sass())
         //添加前缀
        .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
        //保存未压缩文件到我们指定的目录下面
        .pipe(gulp.dest('dest/css'))
        //给文件添加.min后缀
        .pipe(rename({ suffix:'.min' }))
         //压缩样式文件
        .pipe(cssmin())
        //输出压缩文件到指定目录
        .pipe(gulp.dest('dest/css'))
        //提醒任务完成
        .pipe(notify({ message: 'Styles task complete' }));
    });  
    /*监听*/
    gulp.task("watch",function(){
    /*src/scss/*.scss监听的路径,styles执行的任务*/ gulp.watch(
    'src/scss/*.scss',['styles']); })

    这样就可以实现到sass的编译的,只要在编译指定目录下的创建一个.scss后缀的sass文件,在这里编译的代码都可以输出到指定目录下,还有每次

    输出之后都会有提示(Styles task complete)。

     

     

  • 相关阅读:
    Java 分布式系统 实现session共享
    MySQL 大数据量使用limit分页,随着页码的增大,查询效率越低下。
    Linux下安装Zookeeper
    Mysql Window 下安装
    Spring Boot 教程demo
    全文搜索引擎 Elasticsearch (三)logstash-input-jdbc同步数据 到elasticsearch
    全文搜索引擎 Elasticsearch (二) 使用场景
    67.基于nested object实现博客与评论嵌套关系
    66.基于共享锁和排他锁实现悲观锁并发控制
    65.基于document锁实现悲观锁并发控制
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/6006143.html
Copyright © 2020-2023  润新知