Gulp工具

Vue脚手架启动

在这里插入图片描述

Vue脚手架加载配置

在这里插入图片描述

vue inspect --mode=development > dev.config.js
vue inspect --mode=production > prod.config.js

什么是Gulp?

  1. 什么是Gulp?
  2. A toolkit to automate & enhance your workflow;
  3. 一个工具包,可以帮你自动化和增加你的工作流;

    在这里插入图片描述

Gulp和Webpack

  1. gulp的核心理念是task runner
  2. 可以定义自己的一系列任务,等待任务被执行;
  3. 基于文件Stream的构建流;
  4. 我们可以使用gulp的插件体系来完成某些任务;
  5. webpack的核心理念是module bundler
  6. webpack是一个模块化的打包工具;
  7. 可以使用各种各样的loader来加载不同的模块;
  8. 可以使用各种各样的插件在webpack打包的生命周期完成其他的任务;
  9. gulp相对于webpack的优缺点:
  10. gulp相对于webpack思想更加的简单、易用,更适合编写一些自动化的任务;
  11. 但是目前对于大型项目(Vue、React、Angular)并不会使用gulp来构建,比如默认gulp是不支持模块化的;

Gulp的基本使用

  1. 首先,我们需要安装gulp:

    在这里插入图片描述

  2. 其次,编写gulpfile.js文件,在其中创建一个任务:

    在这里插入图片描述

  3. 最后,执行gulp命令:

    在这里插入图片描述

创建gulp任务

  1. 每个gulp任务都是一个异步的JavaScript函数:
  2. 此函数可以接受一个callback作为参数,调用callback函数那么任务会结束;
  3. 或者是一个返回stream、promise、event emitter、child process或observable类型的函数;
  4. 任务可以是public或者private类型的:
  5. 公开任务(Public tasks) 从 gulpfile 中被导出(export),可以通过 gulp 命令直接调用;
  6. 私有任务(Private tasks) 被设计为在内部使用,通常作为 series() 或 parallel() 组合的组成部分;
  7. 补充:gulp4之前, 注册任务时通过gulp.task的方式进行注册的

    在这里插入图片描述

默认任务

  1. 我们可以编写一个默认任务:

    在这里插入图片描述

  2. 执行 gulp 命令:

    在这里插入图片描述

任务组合series和parallel

  1. gulp提供了两个强大的组合方法:
  2. series():串行任务组合;
  3. parallel():并行任务组合;
  4. 他们都可以接受任意数量的任务函数或者已经组合的操作;
  5. 在这里插入图片描述

读取和写入文件

  1. gulp 暴露了 src() 和 dest() 方法用于处理计算机上存放的文件。
  2. src() 接受参数,并从文件系统中读取文件然后生成一个Node流(Stream),它将所有匹配的文件读取到内 存中并通过流(Stream)进行处理;
  3. 由 src() 产生的流(stream)应当从任务(task函数)中返回并发出异步完成的信号;
  4. dest() 接受一个输出目录作为参数,并且它还会产生一个 Node流(stream),通过该流将内容输出到文件中;
  5. 在这里插入图片描述

  6. 流(stream)所提供的主要的 API 是 .pipe() 方法,pipe方法的原理是什么呢?
  7. pipe方法接受一个 转换流(Transform streams)或可写流(Writable streams);
  8. 那么转换流或者可写流,拿到数据之后可以对数据进行处理,再次传递给下一个转换流或者可写流;

对文件进行转换

  1. 如果在这个过程中,我们希望对文件进行某些处理,可以使用社区给我们提供的插件。
  2. 比如我们希望ES6转换成ES5,那么可以使用babel插件;
  3. 如果我们希望对代码进行压缩和丑化,那么可以使用uglify或者terser插件;
  4. 在这里插入图片描述

glob文件匹配

  1. src() 方法接受一个 glob 字符串或由多个 glob 字符串组成的数组作为参数,用于确定哪些文件需要被操作。
  2. glob 或 glob 数组必须至少匹配到一个匹配项,否则 src() 将报错;
  3. glob的匹配规则如下:
  4. (一个星号*):在一个字符串中,匹配任意数量的字符,包括零个匹配;

    在这里插入图片描述

  5. (两个星号**):在多个字符串匹配中匹配任意数量的字符串,通常用在匹配目录下的文件;

    在这里插入图片描述

  6. (取反!):由于 glob 匹配时是按照每个 glob 在数组中的位置依次进行匹配操作的;
  7. 所以 glob 数组中的取反(negative)glob 必须跟在一个非取反(non-negative)的 glob 后面;
  8. 第一个 glob 匹配到一组匹配项,然后后面的取反 glob 删除这些匹配项中的一部分;

    在这里插入图片描述

Gulp的文件监听

  1. gulp api 中的 watch() 方法利用文件系统的监控程序(file system watcher)将 与进行关联。
  2. 在这里插入图片描述

Gulp案例

  1. 接下来,我们编写一个案例,通过gulp来开启本地服务和打包:
  2. 打包html文件;
  3. 打包JavaScript文件;
  4. 打包less文件;
  5. Html资源注入
  6. 删除生成目录
  7. 创建打包任务
  8. 创建开发任务

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340