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'))
    );
    

      

  • 相关阅读:
    AFNetworking使用总结
    使用Attiny 85开发板制作BadUSB
    C# 按指定数量从前面或者后面删除字符串
    C# 获取打印机列表
    【解决】该任务映像已损坏或已篡改。(异常来自HRESULT:0x80041321)
    PowerShell 解锁使用浏览器下载的文件
    C#使用HttpHelper万能框架,重启路由器
    【解决】应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。
    Windows 7 IE11 F12 不能正常使用
    HTML5 图片上传预览
  • 原文地址:https://www.cnblogs.com/moonzwt/p/9637884.html
Copyright © 2011-2022 走看看