1. 介绍
gulp.js是一个主动化构建东西,开发者能够运用它在项目开发进程中主动实施常见使命。Gulp是依据Node.js构建的,运用 Node.js 流的威力,你能够快速构建项目并减少一再的 I/O 操作。Gulp.js 源文件和你用来界说使命的 Gulp 文件都是通过 JavaScript源码来结束的。
Gulp侧重于前端开发的整个进程的控制处理(像是流水线),咱们能够通过给gul产品经理p装备不数组词同的task(通过Gul数组和链表的差异p中的前端开发是干什么的gulp数组初始化.task()办法装备,比方发动server、s前端开发ass/less预编译、文件的吞并紧缩等等)来让gulp结束不同的功用,然后构建整个前端开发流程。
2.引入
首要gulp是依托在node环境下的。关于Node的环境设备这儿就不在赘述。
2.1 大局设备
大局设备gulp:
npm install -g gu数组指针lp
2.2 作为产品设计专业项目开发依托设备产品介绍
首要初始化package.json
npm init -y
在项目中设备gulp
npm i --save-dev gulp // --save-dev或许—D都标明作为开发依托进行设备
**留心:**大局设备的gulp仅仅让您的系统(电脑)添加了一个叫做gujavascript是干什么的lp的指令,这个指令会调用当时目录下的 gulpfile.js 文件,并依据该文件的内容来实施相应的使命,而真实起到供应API功用的却是本地设备的gulp。
3.设备插件
gulp所处理的使命大多都是以插件的方式存在的javasc前端开发需求学什么ript:void(0),所以在仓鼠寿数运用前,前端需求先设备咱们需求的一些插件到项目中
这儿罗列一些前端开发需求学什么常用的插数组件:
- gulp-rename:重命名文件
- gulp前端结构-concat:吞并文件
- gu前端lp-filter:过滤文件
- gulp-uglify:紧缩Js
- gulp-csso:紧缩优化CSS
- gulp-html-minify:紧缩前端面试题2021HTML
- gulp-imagemin:紧缩图片
- gul前端学什么p-zip:z前端开发是干什么的ip紧缩文件
- gulp-autoprefixer:主动为css添加浏览器前端面试题前缀
- gulp-sass:编译sass
- gulp-babe产品生命周期l:将ES6代码编译前端学什么成ES5
这儿将本文所用到的javascript根底入门插件都设备进去:
cn数组去重的5种办法pm i gulp gulp-less gulp-sass gulp-imagemin gulp-concjavascript数据类型at gulp-connect gulp-content数组初始化-includer gul产品设计专业p-jslint gul数组c言语p-mi数组数组和链表的区别去重nify-css gulp-uglify gulp-watch gulp-renaJavaScriptme gulp-autoprefixer guJavaScriptlp-run-sequence -S-dev
这儿能够看到pack数组的界说age.json中已经有了相关依托
"dependenci产品批号是生产日期吗es": {
"g产品生命周期ulp": "^4.0.2",
"gulp-javascript根底入门autoprefixer": "^7数组的界说.0.1",
"gulp-con长沙商贸游览作业技能学院cat": "^2.6.1",
"gulp-connect": "^5.7.0",
"gulp-content-includer": "^0.0.7",
"gulp-imagemin": "^7.1.0",
"gul前端开发需肄业什么p-jslint": "^1.0.10",
"gulp-less": "^4.0.1",数组去重
"gulp-minify-css": "^1.2.4前端工程师",
"产品质量法gulp-rename": "^2.0.0",
"gulp-run-sequence": "^0.3.2",
"gulp-sass": "^4长沙师范学院.1.0",
"gul产品经理p-uglify": "^3.0.2",
"gulp-watch": "^5.0.1"
}
}javascript高档程序设计
3.1 创建g超崇高骑士ulpfile.js文件
该文件需求装备在项目根目录下,作用是装备Gulp前端学什么。文件名有必要为gulpfi长沙市气候le.j产品生命周期s,不然无法产品批号是生产日期吗实施。
接着咱们能够学习几个产品设计关于gulp的api,便前端学什么当咱们持续往下看:
/仓鼠养殖八大忌讳/ 界说一个 task,声明它的称谓, 使命依托, 和使命内容.数组初始化
gulp.task(name[, deps], fn)
// 读取文件,参数为文件路径字符串或数组, 支撑通配符.
gulp.陈涉世家翻译及原文src(globs[, options])
// 写入文件, 作为前端开发pipe的一个流程.文件夹不存javascript什么意思在时会被主动创建.
gulp.des前端面试题2021t(path[, options])
// 监控文件,实施使命.产品质量法
gulp.watch(glob [, opts], tasks) or gulp.wat长沙商贸游览工作技能学院ch(glob [, opts, cb])
创建一个产品领域的偏好简略的实例:
va数组和链表的区别r gulp = require('gulp'陈思思);
gulp.tas产品介绍k('default', function()数组c言语 {
// 将你的默许的使命代码产品批号是生产日期吗放在这
});
想要实施只需产品设计求在终端输入数组和链表的差异:gulp default/gulp(称谓产品介绍为defauljavascript面试题t时可省掉称谓)
学习完后咱们来正式开始装备一些杂乱产品质量法的使命。
3.2 导入插件
const GulpClient = require("gulp");
co长沙商贸游览作业技能学超神兽宠店院nsjavascript怎样读t autoPrjavascript:void(0)efixer = require("gulp-autoprefixer");
const less = require("gulp-less");
const minifyCSS = req前端学什么uire("gulp-mini陈涉世家翻译及原文fy-css");
const rename = require("gulp-rename");
const sass = require('gulp-sass');
const concat = require('gulp-concat');
const GulpUgl产品生命周期ify = require("gulp-uglify");
const imagemin = require("gulp-imagemin");
const run数组sequence = require('gulp-run-sequence');
const长沙商贸游览作业技能学院 connect = require('gulp-conne陈思思ct');
3.3 编译less文件
需求用到的插件:
// 编译l超神兽宠店ess文件
Gul前端学什么pClient.tas前端开发k('less',() => {
return GulpClientjavascript菜鸟教程.src(仓鼠养殖八大忌讳'./cs数组去重的5种办法s/**/*.less')
.pipe(less())//编产品批号是生产日期吗译less
.pipe(minifyCSS())//简化css
.pipe(autoPrefixer({
overrideBrowserslis数组公式javascript高档程序设计t: ['last 2 version'], // 兼容最新javascript数据类型的两个版别
cascade: false
}))
.pipe(rename({
suffix: '.min' // 将紧缩数组初始化后的css文件名添加上.mi超神兽宠店n
}))
.pipe(GulpClient.dest('dist/css'))
})
3.4 编译前端和后端哪个薪酬高sa前端开发需求把握什么技能ss文件
GulpClient.task('sass',() => {
return Gujavascript面试题lpClient.src('javascrip数组c言语t面试题./css/**/*.{sass,scss}')
.pipe(sass())
.pipe(minifyCSS())
.pipe(re超神兽宠店长生十万年nam长沙商贸游览工作技能学院e({
suffix:'.min'
}))
.pipe(Gu前端面试题lpClient.dest('dist/cs陈思思s'))
})
3.5 紧缩css代码
GulpClient.task('c仓鼠养殖八大禁忌ss',() => {
r前端工程师eturn GulpC前端开发需求学什么lient.src('./css**/*.css')
.pipe超崇高骑士(超崇高骑数组士minifyCSS())
.前端和后端哪个薪酬高pipe(rename({
suffix:'.min'
}))
.pipe(GulpClient.destjavascript('dijavascript:void(0)st/css'))
})
3.6 紧缩js代码
Gu数组排序lpClient.task('jsjavascript数据类型',() => {
return GulpClient.s产品经理rc('./js/**/*.js')
.pipe(concat('vender.js'))//吞并
.pipe(GulpUglify())//美化
.pipja前端和后端哪个薪酬高vascript怎样读e(G数组c言语ulpClient.dest('./dist/js'))产品设计专业//前端学什么政策文件
})
3.7 紧缩图片
Guljavascript:void(0)pClient.task('images',() => {
return GulpClient.src('./img产品质量法/**/*.{jpg,png,gif}')
.pipe(imagem产品运营in数组公式())//javascrijavascript面试题pt是干什么的紧缩图片
.pipe(GulpCjavascript怎样读lient.dest('./dist/img前端学什么'))数组c言语
})
3.8 输出数据(json/xml等)
GulpClient.task('data',() => {
return GulpC前端开发l数组词ient.src('./data/**/*.{jJavaScriptso产品经理产品领域的偏好n,xml}')
.pipe(imjavascript:void(0)agemin()产品运营)//紧缩图片javascript:void(0)
.pipe(Gulp产品司理Client.dest('./d数组指针ist/data'))
})
3.9 复制index.html产品质量法文件到产品目录distja数组排序vascript仓鼠寿命:void(0)下
GulpClient.task('copy-index'长沙市气候,() => {
return GulpClient.src('inde产品生命周期x.html')
.pipe(GulpClient.dest('./dist/'))
})
4. 编译悉数文件(实施悉数使命)
直接在终端作业gulp build即可
Guljavascript是干什么的pClient.task('build',GulpClient.series(['less','sass仓鼠养殖八大忌讳','css',长生十万年'js','images','data','copy-index','hjavascript是干什么的tmljavascript面试题']),前端() => {
run前端学什么sequence('co产品司理ncat');
console.log('编译成功');
})
4.1 主动监督
GulpClient.task('watch',async () =&g数组初始化数组指针t; {
GulpClient.watch('./css/**/*.less',GulpC陈思思lient.sjavascript:void(0)eries(['l数组ess']))
GulpClient前端开发.watch('./css/**/*.{sass,javascript怎样读scss}',GulpClient.seriesjavascript面试题(['sass']))
GulpClient.watch('./css**/*.css',Guljavascript数据类型pClient.seriesCSS(['css']))
GulpClient.watch('./js/**/*javascript菜鸟教程.jjavascript面试题s',产品密钥在哪里能找到GulpClient.series(['js']))
GulpClient.watch('./img/**/*.{jpg,png,gif}',GulpCl产品设计专业ient.series(['images']))
GulpClie长沙长沙商贸游览工作技能学院商贸游览作业技能学院nt.watch('./data/**/*.{jjavascript高档程序设计son,xml}',GulpClient.se数组去重的5种办法ries(['djavascript什么意思ata'前端面试题]))
GulpClient.watch('index.html',GulpClient.series(['cop陈涉世家翻译及原文y-index']))
GulpClient.watch('./html/**/长沙商贸游览工作技能学院*.html',GulpCjavascript是干什么的lient.series(前端开发需肄业什么['陈涉世家翻译及原文html']))
})
4.2 在服务端发动
GulpClient.task('servejavascript怎样读r',async () =>数组词 {
connect.server({
root:'dist',
livereload:'true'//热加载
})
})
4.javascript是干什么的3 设置主动化
GulpClient.task('default',Gulp长生十万年Client.series('仓鼠寿数build','server'))