[图片上传失败...(image-72fa6-1527476141827)]
一个发明家的职责是发明出产品,剩下的,就交个机器去完成吧!
gulp
这个单词愿意是:狼吞虎咽的,一气呵成的。这个node应用用这个名字,应该就是希望能够将各种文件通过前端工程师一个命令,就可以像流水线一样,完成一系列繁杂的工作。这个应用的产生不得不提到一个名词——前端工程化。
什么是前端工程化
作为一名开发工程师,发明代码程序的过程是幸福和充满乐趣的,但是苦恼于一些重复繁杂的任务,诸如将写好的代码重新排版,提高语义化;将图片压缩打包;将less转化为css等等。
gulp(尬欧婆)的诞生解放了程序员,它只需要通过简单的代码设置,就可以通过一个命令让这些繁杂的工作像流水线一样被机器完成,而且又快又完美。[图片上传失败...(image-3040c8-1527476141827)]
简而言之,前端工程化就是前端的自动化。
nodejs的数据流是什么?
以前工程师们写好代码==>保存查看==>发现需要排版==>去排版==>发现需要压缩==>去压缩。。。
而使用gulp之后,通过nodejs 的数据流,这些过程不需要每次都保存查看再去进行下一步骤,而是一气呵成。举个例子:
数据流:1+1+3+5-4=6 ==> 6```
#gulp的API
###纵观gulp,API仅仅只有四个而已。
1. `gulp.src()`:将文件选中,变成数据流(这里可以理解为水流)并pipe(管道传输)到其他工具或者文件夹中。
2. `gulp.dest()`:将处理好的文件放入到...
3. `gulp.task()`:定义一个任务,即定义一个生产线。
4. `gulp.watch()`:监测某文件并进行仿某项操作。
###[gulp的API文档详解](http://www.gulpjs.com.cn/docs/api/)
*****
#实操演练
### 第一步:初始化
`npm init -y` ——创建package.json文件。
`touch gulpfile.js`——创建gulpfile.js。
`npm install --save-dev gulp`——安装gulp。
`npm install --save-dev gulp-cssnano && npm install --save-dev gulp-concat`——安装css压缩工具包和文件合并工具包
###第二步:写代码
目录层级:
![](https://img.haomeiwen.com/i3706166/6e676928dd5f4c2b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我的需求是通过gulp自动将三个css文件合并成一个文件并压缩去掉其中的空格等等。
gulpfile.js
var gulp = require('gulp');
var concat = require('gulp-concat');
var cssnano = require('gulp-cssnano');
gulp.task('build:css',function(){
return gulp.src('./src/css/*.css')
.pipe(concat('all.css'))
.pipe(cssnano())
.pipe(gulp.dest('./dist/'));
});
在node端运行:
![](https://img.haomeiwen.com/i3706166/c89ccbaaac4647c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
######或者直接使用gulp命令
gulpfile.js
var gulp = require('gulp');
var concat = require('gulp-concat');
var cssnano = require('gulp-cssnano');
gulp.task('default',function(){
return gulp.src('./src/css/*.css')
.pipe(concat('all.css'))
.pipe(cssnano())
.pipe(gulp.dest('./dist/'));
});
在node端运行:
![](https://img.haomeiwen.com/i3706166/fcc09852347a0faa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最终输出在`./distall.css`
.box1{width:100px;height:100px;background-color:red;display:inline-block}.box2{width:150px;height:150px;background-color:blue;border-radius:50%}.box2,.box3{text-align:center}.box3{width:200px;height:200px;background-color:#ff0;border-radius:5px}
##运行成功!
gulp详细使用方法自己去看文档
这个博客写的不错
网友评论