gulp概念

之前有写了webpack, 现在重新写gulp感觉二者最终结果虽说相差无几,但是侧重点还是有所不同
webpack更偏向于工程化,gulp侧重于项目的整个流程控制,你可以二者结合,也可以分开取舍 都有利于前端项目的工程化构建
  • 安装
    1、全局安装

      $ npm install -g gulp 

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

      $ npm install --save-dev gulp

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

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

    4、 运行 gulp:

       $ gulp
    
    • api
      (1) gulp.src()

      gulp.src('client/js/**/*.js') // 匹配 'client/js/somedir/somefile.js' 并且将 `base` 解析为 `client/js/`.pipe(minify()).pipe(gulp.dest('build'));  // 写入 'build/somedir/somefile.js'gulp.src('client/js/**/*.js', { base: 'client' }).pipe(minify()).pipe(gulp.dest('build'));  // 写入 'build/js/somedir/somefile.js'

      (2) gulp.task()

      其实gulp就是不断起一些任务函数,来运行你的项目
      gulp.task('copyplugin',function(){gulp.src('./src/plugin/**/*').pipe(gulp.dest('./dev/plugin'))})gulp.task('packscss',function(){gulp.src('./src/styles/app.scss').pipe(sass().on('error',sass.logError)).pipe(gulp.dest('./dev/styles'))})
      ....

      (3) gulp.watch()

       用来接听任务函数,把要接听的任务传入 启动的时候 会根据传入的任务进行执行,当然,不会按顺序gulp.task('watch',function(){gulp.watch('./src/*.html',['copyhtml'])gulp.watch('./src/images/**/*',['copyimg'])gulp.watch('./src/styles/**/*.scss',['packscss'])}     

      (4) 当你想直接gulp启动项目的话,会使用

       gulp.task('default',['webserver','copyhtml','copyimg','copyplugin','packscss','packjs','watch'],function(){console.log('DONE')
      })
  • 其实gulp常用的就是插件,下面介绍一下项目中常用的插件,从而帮你更高效的构建项目
    (1) 启动服务插件 npm i gulp-webserver -D

    配置:引入gulpvar gulp = require('gulp')var webserver = require('gulp-webserver')gulp.task('webserver',function(){gulp.src('./dev')     //编译后的根目录.pipe(webserver({host : 'localhost',port : 4000,directoryListing : {   //启动项目显示目录enable : true,path : './dev'},livereload : true}))})

    (2) 编译sass npm i gulp-sass node-sass -D

    var sass = require('gulp-sass')gulp.task('packscss',function(){gulp.src('./src/styles/app.scss').pipe(sass().on('error',sass.logError)).pipe(gulp.dest('./dev/styles'))console.log('sass编译啦')
    })

    (3) 编译commenjs实现模块化开发 npm i gulp-webpack -D

    var webpack = require('gulp-webpack')gulp.task('packjs',function(){gulp.src('./src/scripts/app.js').pipe(webpack({output : {filename : 'app.js'  //输出文件为 name.js},module : {        loaders :[      //加载器{test : /\.js$/,    //指定加载文件的类型loader : 'imports-loader',  //用imports-loader解析exclude : './node_modules'  //排除不需要编译的js文件}]}})).pipe(gulp.dest('./dev/scripts'))})

    (4) 解析浏览器不识别的require npm i imports-loader -D

           直接 $ gulp 即可bogon:guang_m macbook$ npm i imports-loader -Dguang_m@1.0.0 /Users/macbook/Desktop/learning/third/guang_m└─┬ imports-loader@0.7.1 ├── loader-utils@1.1.0 └── source-map@0.5.7 npm WARN guang_m@1.0.0 No descriptionnpm WARN guang_m@1.0.0 No repository field.bogon:guang_m macbook$ gulp[15:01:40] Using gulpfile ~/Desktop/learning/third/guang_m/gulpfile.js[15:01:40] Starting 'webserver'...[15:01:40] Webserver started at http://localhost:4000[15:01:40] Finished 'webserver' after 21 ms[15:01:40] Starting 'packscss'...

    (5) 解析多个js文件 npm i vinyl-named -D

        gulp.src('./src/scripts/app.js').pipe(name()).pipe(webpack({output: {filename: '[name].js'},module: {loaders: [{test: /\.js$/,loader: 'imports-loader',exclude: './node_modules'}]}

    (6) 下载yo3 框架,专注于移动端的scss npm i yo3 -D

    在node_modules中找到yo3 复制style到项目src中
    习惯性的在style中创建app.scss 用来import一些需要的文件
    ,再在usage中创建模块scss文件index.scss显示页面样式.m-index{height: 100%;@include flexbox();@include flex-direction(column);header{height: .44rem;background: #00b38a;}section{background: #fff;@include flex();}footer{height:.44rem;background: #f6f6f6;}}   

    (7) 加载字符串模板 npm i string-loader -D

        loaders : [{test : /\.js$/,loader : 'imports-loader',exclude : './node_modules'},{test : /\.string$/,loader : 'string-loader'}]    

    好了 ,常用就这些了 如果有新的知识点后续还会补充.....

gulp——用自动化构建工具增强你的工作流程相关推荐

  1. 用自动化构建工具增强你的工作流程——gulp

    1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev ...

  2. Gulp:自动化构建工具

    一.介绍: gulp是一个基于流的构建工具,可以自动执行指定的任务,简洁且高效 二.优点: 开发环境下,想要能够按模块组织代码,监听实时变化 css/js预编译,postcss等方案,浏览器前缀自动补 ...

  3. gulp前端自动化构建工具:常用插件介绍及使用

      Gulp是基于Node.js的一个构建工具(自动任务运行器),开发者可以使用它构建自动化工作流程(前端集成开发环境).一些常见.重复的任务,例如:网页自动刷新.CSS预处理.代码检测.压缩图片.等 ...

  4. gulp.js 自动化构建工具学习入门

    一.基本安装 1.安装gulp 1 $ npm install --global gulp 2.作为项目的开发依赖安装 1 $ npm install --save-dev gulp 3.在项目根目录 ...

  5. 前端自动化构建工具合集之gulp-姜威-专题视频课程

    前端自动化构建工具合集之gulp-2984人已学习 课程介绍         Gulp自动化构建系统,使用node.js串流让构建更的组合,利用外挂(plugins)使应用更灵活,简单的四个命令,组合 ...

  6. 前端自动化构建工具:用Gulp4.0搭建一个基本的前端开发环境

    一个项目的完成一般需要经过三个步骤:初始化.开发和部署.在前端开发过程中,我们经常需要依靠一些自动化构建工具来优化前端工作流程,来帮助我们完成一系列繁琐的工作,例如浏览器热更新.ES6编译.代码压缩. ...

  7. 常用的前端自动化构建工具gulp/grunt/fis --简介

    常用的前端自动化构建工具 之前我们自动化构建将入门级别使用的 NPM Scripts自动化构建工具对于相对复杂的项目构建会比较吃力,那么我们会了解 Gulp Grunt fIS 用法基本相同:都是通过 ...

  8. (28)自动化构建工具Gulp

    一.自动化构建工具介绍 Grunt:它是最早的自动化构建工具,它是基于临时文件进行构建的,构建速度慢. Gulp:它是基于内存进行构建的.是我们目前最流行最常用的自动化构建工具.构建速度快,上手更容易 ...

  9. 前端工程化实战 - 自动化构建工具

    文章目录 一.自动化构建简介 二.自动化构建初体验 2.1 场景描述 2.2 实际操作体验 三.常用的自动化构建工具 3.1 Grunt 3.2 Gulp 3.3 FIS 四.自动化构建工具 Grun ...

最新文章

  1. 科研人员多维度测试GPT-3发现:它并不是一名“好学生”
  2. 网络推广外包介绍网站该如何加快收录量?
  3. Spring5源码 - 14 如何在所有Bean创建完后做扩展?
  4. python中的文件处理_python学习——python中的文件处理
  5. CentOS 7下彻底卸载MySQL数据库
  6. makefile中 = ,:=,+=有怎么区别?
  7. 驱动加载工具(InstDrv - V1.3中文版)
  8. 开计算机课的积极消极影响,多媒体课件的负面影响及建议
  9. android 三点参数,iqoo3参数配置详情-iqoo3参数配置手机参数详细表
  10. 【Python-利用动态二维码传输文件(三)】动态二维码展示界面制作,涉及PIL库、threading库、os库、time库和tkinter库的Tk、Label组件
  11. 关系抽取论文阅读笔记
  12. 四、异常(高琪java300集+java从入门到精通笔记)
  13. 禁止迅雷极速版被强制升级为迅雷x
  14. Java实现短链接URL生成
  15. 全面风险管理体系架构图
  16. Git Alias(git快捷命令别名设置)
  17. python的allure使用
  18. Windows Server 2012 R2 官方原版镜像
  19. Poi读取大数据量Excel文件
  20. GAT 算法原理介绍与源码分析

热门文章

  1. primefaces教程_Primefaces Spring和Hibernate集成示例教程
  2. 如何编译Linux内核
  3. C++基础教程之日期和时间
  4. scrapy常用设置参考手册
  5. 未来PCB行业互联网+发展趋势
  6. 122 Best Time to Buy and Sell Stock II
  7. 最小二乘原理求解线性回归方程
  8. Android导出jar包后的资源使用问题
  9. Android文件上传
  10. 【大数相乘】LeetCode 43. Multiply Strings