zoukankan      html  css  js  c++  java
  • gulp和yarn打包工具二分钟包会教程(高阶)

    1.代码理解

      假设你在一个深山老林的寺庙里住着,每天得打水就这件事————

        打水----水桶----寺庙这个过程就是我们操作整体思想

     

    准备工作

    1.//拷贝多个文件
    gulp.src("src/**/*").pipe(gulp.dest("dist/js"))
    2.//合并文件
      gulp.task("adddata",function(){
      gulp.src(["src/json/**/*","src/xml/**/*"])
        .pipe(gulp.dest("dist/data"))
      })

      

      来看代码(目录结构自己找相对路径,详见上一章)

    001、图片压缩
    安装插件cnpm install gulp-imagemin --save-dev
    var imgMin = require("gulp-imagemin");
    gulp.task("imgMin",function(){
        gulp.src("src/imgs/**/*")
        .pipe(imgMin())
        .pipe(gulp.dest("dist/imgs"))
    })
    

      

    002、js压缩
    命令行安装 cnpm install gulp-uglify --save-dev
    var jsMin = require("gulp-uglify")
    
    gulp.task("jsMin",function(){
        gulp.src("src/js/js/*.js")
        .pipe(jsMin())
        .pipe(gulp.dest("dist/js/js"))
    })
    

      

    003、编译sass及压缩css
    cnpm install gulp-sass-china --save-dev

    //sass
    var css = require("gulp-sass-china");
    gulp.task("cssmin",function(){
        gulp.src("src/**/*.{scss,sass}")
        .pipe(css({
            outputStyle:"compressed"
        }))
        .pipe(gulp.dest("src/"))
    })
    

      

    
    
    004、监听
      虽然以上可以将sass编译和压缩  但是如果在sass里面编写文件 css里面的文件不会改变的!而需要每次都去终端中运行。特别麻烦
       
      首先监听不能够单独存在  必须配合任务一起使用
    //监听
    // 第一个参数:监听哪个文件
    gulp.task("scss",function(){
        // 监听时执行cssmin 第二个是个集合
        gulp.watch("scss/**/*.{scss,sass",["cssmin"])
    })
    

      

    005、服务器
    命令行安装 cnpm install gulp-connect --save-dev
     
         参数:
              root:设置目录
     
              port:端口号
     
              livereload:当设置为true的时候,gulp会自动检测文件的变化然后自动进行源码构建
    //搭建本地服务
    var connect = require("gulp-connect");
    gulp.task("server",function(){
        //开始服务设置根路径为src
        connect.server({
            //路径
            root:"src",
            //端口号
            port:7754,
            //检测文件变化
            livereload:true
    
        })
    })
    

      

    006、自动刷新
    //搭建本地服务
    var connect = require("gulp-connect");
    gulp.task("server",function(){
        //开始服务设置根路径为src
        connect.server({
            //路径
            root:"src",
            //端口号
            port:7754,
            //检测文件变化
            livereload:true
    
        })
    })
    //自动刷新 server+watch 服务器和监听只能存在一个
    gulp.task("server-watch",function(){
        //监听文件的改变
        gulp.watch("src/index.html",function(){
            //文件改变了就让服务器重新加载
            gulp.src("src/index.html")
            .pipe(connect.reload())
        })
    })
    gulp.task("server-task",["server","server-watch"])
    

      

    007、合并文件插件gulp-concat
    命令行安装 cnpm install gulp-concat --save-dev
    //合并文件
    var concat = require("gulp-concat");
    gulp.task('scripts',function(){
        gulp.src(["javasctipts/avalon.js",'javascripts/index.js'])
        .pipe(concat("vandor.js"))
        .pipe(gulp.dest("dist/js"))
    })
    

      008、转义ES6 gulp-babel

      cnpm install --save-dev gulp-babel @babel/core @babel/preset-env

    //es6
    gulp.task('defa', () =>
        gulp.src('src/app.js')
            .pipe(babel({
                presets: ['@babel/env']
            }))
            
            .pipe(gulp.dest('dist'))
    );
    

      

  • 相关阅读:
    YYC松鼠视频pro版安装实操001
    YYC松鼠视频短信对接教程
    此处指讲解自定义的一些目录结构及组件-yyc松鼠短视频系统
    APP启动无视频数据-YYC松鼠短视频系统
    后台提示登录失败----YYC松鼠短视频开源
    C++静态成员变量和静态成员函数
    内联函数和宏定义的区别
    C++中的接口继承和实现继承
    拷贝构造函数(define)
    类的封装
  • 原文地址:https://www.cnblogs.com/moonzwt/p/9637884.html
Copyright © 2011-2022 走看看