共计 1359 个字符,预计需要花费 4 分钟才能阅读完成。
简介
Gulp 基于 Node.js 的前端自动化构建工具
- 工作化
- 基于流(输出流和输入流)
- 异步执行工作
- 底层封装基于 Node 的读写模块
主要用途:
- css 解决:压缩,转码(比方主动增加兼容前缀)
- js 解决:压缩,转码(ES6 语法转 ES5,Typescript, Coffescript)
- html 解决:压缩,转码(格局转换,比方 pug 模板转.html)
- 动态文件解决(图片等等)
gulpfile.js
gulpfile.js 位于 gulp 我的项目的根目录,用于编写执行 gulp 工作的程序,应用 Javascript 编写,能够调用 Node 模块
gulp 每个工作都能够编写到一个独立的文件中,在 gulpfile.js 中通过 import
的形式引入,便于保护。
次要 API 介绍
API 文档:https://www.gulpjs.com.cn/docs/api/concepts/
gulp 提供一系列的 API 来构建和管制每个工作流程,上面介绍的是在 gulp 开发中次要用到的 API
gulp.src(path);
path 指定源文件的门路
作用:查找指定的指标源文件,读取文件到内存中,返回文件流、
示例:
gulp.src('./a/b.html');
指定某个文件gulp.src('./a/*.html');
指定某个目录下的所有扩大名为.htmlgulp.src('./a/**');
指定目录下的所有文件
gulp.dest(path);
指定输入文件目录,将通过解决之后的文件输入到该目录下
gulp.dest('./dist');
gulp.task();
创立一个基于流的 gulp 工作
gulp.task('[工作名]', function() {// 具体任务的业务逻辑});
gulp.watch(门路, 工作名)
监听文件扭转,执行工作
gulp.watch('./a/*.*' , 'html');
gulp.series(taskA, taskB)
一一执行多个工作,即 taskA 执行完了,再执行 taskB
function taskA() {// 工作 A}
function taskB() {// 工作 B}
gulp.series(taskA, taskB);
gulp.parallel(taskA, taskB)
并行执行多个工作,即 taskA 和 taskB 同时执行
function taskA() {// 工作 A}
function taskB() {// 工作 B}
gulp.parallel(taskA, taskB);
gulp.pipe(gulpTask)
管道函数,接管以后的流解决完了,再传递到一下个管道工作
gulp.src('./src').pipe(压缩).pipe(转码).pipe(dest('./dist'));
插件
插件是构建 gulp 工作时经常会应用一些插件来实现特定的工作,比方压缩文件,合并文件,转换程序等等。
常见的插件(实战章节会对相干的插件应用进行介绍):
- gulp-concat 合并文件
- gulp-uglify 压缩 js 文件
- gulp-less 编译 less
- gulp-mincss 压缩 CSS
- gulp-sass CSS 预编译
应用办法:
- 装置
npm install gulp-concat --save-dev
- 援用
const concat = require('gulp-concat');
- 调用
gulp.pipe(concat())
正文完
发表至: javascript
2021-04-07