day34 gulp

day34 gulp

1. Gulp简介

  • gulp是前端开发过程当中对代码进行构建的工具,是自动化项目的构建利器;她不只能对网站资源进行优化,并且在开发过程当中不少重复的任务可以使用正确的工具自动完成;使用她,咱们不只能够很愉快的编写代码,并且大大提升咱们的工做效率。
  • gulp是基于Nodejs的自动任务运行器,她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操做系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操做上很是简单。
  • gulp 和grunt 很是相似,但相比于 grunt 的频繁 IO 操做,gulp 的流操做,能更快地更便捷地完成构建工做。

2. Gulp环境搭建

1)安装nodeJs

  • 说明:gulp是基于nodejs,理所固然须要安装nodejs
  • 安装:打开nodejs官网(https://nodejs.org/en/),点击硕大的绿色Download按钮,它会根据系统信息选择对应版本(.msi文件)
  • 测试:按window + r 输入cmd回车,而后输入npm -v
  • 确保已经配置到了环境变量, 这样你就能够在全局范围内去使用它了
  • 若是想了解环境变量:进入如下地址:https://blog.csdn.net/jiang77...
  • npm的解释:javascript

    • npm是Node.js的包管理工具(package manager)
    • 在Node.js上开发时,会用到不少别人写的JavaScript代码。若是须要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,很是繁琐。因而一个集中管理的工具应运而生:你们都把本身开发的模块打包后放到npm官网上,若是要使用,直接经过npm安装就能够直接用,不用管代码存在哪,应该从哪下载。
    • 更重要的是,若是咱们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm能够根据依赖关系,把全部依赖的包都下载下来并管理起来。不然,靠咱们本身手动管理,确定既麻烦又容易出错。

2)安装 cnpm

  • 由于npm安装插件是从国外服务器下载,受网络影响大,可能出现异常;
  • 若是npm的服务器在中国就行了,因此咱们乐于分享的淘宝团队干了这事。网址:http://npm.taobao.org
  • 安装:css

  • 注意:cnpm跟npm用法彻底一致,只是在执行命令时将npm改成cnpm(如下操做将以cnpm代替npm)

3) 全局安装gulp

  • cmd命令: cnpm install gulp -g
  • gulp -v, 出现版本号即为正确安装
  • 全局安装gulp的目的是:可使用gulp命令(就跟使用npm的命令同样)

4) gulp在项目中如何使用 (新项目的步骤)

1. 新建package.json配置文件(初始化一个项目)

  • cmd命令: cnpm init
  • 一路回车,就会在项目的文件夹下产生一个package.json文件

1614244055203

2. 本地安装gulp(在项目目录下安装gulp)

此步骤的目的是:把gulp里的全部的js文件从服务器上下载到项目目录下;前端

  • 在本目录下cmd(命令行)执行: cnpm install gulp --save-dev
  • 安装完成后,就会在项目目录下产生一个node_modules文件

    1614244515297

3. 使用gulp

在项目根目录下建立 gulpfile.jsjava

  • 在这个js文件中写上js代码,就可使用。
  • gulp.task("任务名称",回调函数);
  • gulp.src("源文件路径");node

    • gulp.src() 是读取将要处理的文件,即源文件
  • gulp.dest("目的路径");npm

    • gulp.dest() 是处理后的文件的路径,即目的文件
  • pipe(操做);json

    • pipe() 管道,是如何处理该文件(如:sass编译,复制文件,压缩文件等)
  • 原生的gulp有:task src dest watch

原生gulp (4个)

复制文件
const gulp = require("gulp");

// gulp原生方法
// gulp.task("任务名称",回调函数)
gulp.task("_copy",function(){
    gulp.src("2fs.txt").pipe(gulp.dest("d:/dest"));
});

// cmd命令行: gulp 任务名, 如gulp _copy

结果:d:/dest下有了2fs.txt文件,说明复制成功了。gulp

批量操做:浏览器

//目录js下的全部目录
// 注意该方法只会赋值js文件夹下的全部文件和文件夹,自己的js文件夹没有赋值
gulp.src("js/**/*").pipe(gulp.dest("d:/dest"));

//把项目目录下的全部文件都进行拷贝 (包括子文件夹,无论有多少级)
//注意:该方法仍然不会复制该项目文件夹,只会复制项目下的文件和文件夹
gulp.src("./**/*").pipe(gulp.dest("d:/dest"));

项目:day34

1614247575610

复制后:

1614247610857

监听文件 watch
gulp.watch("监听的文件",回调函数);
gulp.task("_watch",function(){
    gulp.watch("2fs.txt",function(){
        gulp.src("2fs.txt").pipe(gulp.dest("d:/dest"));
    });
});

本地安装gulp插件

  • npm install moduleName

    • 安装模块到项目目录下
  • npm install -g moduleName

    • g 的意思是将模块安装到全局,具体安装到磁盘哪一个位置,要看 npm config prefix 的位置。
  • npm install -save moduleName

    • -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
  • npm install -save-dev moduleName

    • -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

gulp自己只作一些文件的拷贝,监视等等,可是它提供了不少的接口,由插件完成更多对应的任务,如:js文件的编译,合并文件,压缩文件,优化图片的尺寸,建立本地的开发服务器。下面先介绍经常使用的,更多的能够找gulp的插件。

合并文件

cmd命令: cnpm install gulp-concat --save-dev

const gulp_concat = require('gulp-concat');
gulp.task("_concat",function(){
gulp.src(["js/a.js","js/b.js"]).pipe(gulp_concat("tools.js")).pipe(gulp.dest("d:/dest"));
});
压缩文件

cmd命令:cnpm install gulp-uglify --save-dev

const gulp_uglify = require('gulp-uglify');

gulp.task("_ugly",function(){
    gulp.src("tools.js").pipe(gulp_uglify()).pipe(gulp.dest("d:/dest"));
});
压缩图片

cmd 命令: cnpm install gulp-imagemin --save-dev

const gulp_imgmin = require('gulp-imagemin');
// 压缩图片 cnpm install gulp-imagemin --save-dev
gulp.task("_imgMin",function(){
    gulp.src("img/**/*").pipe(gulp_imgmin()).pipe(gulp.dest("d:/dest"));
});
压缩css

cmd命令:cnpm install gulp-minify-css --save-dev

const gulp_minCss = require('gulp-minify-css');
// 压缩CSS
gulp.task("_minCss",function(){
    gulp.src("css/test.css").pipe(gulp_minCss()).pipe(gulp.dest("d:/dest"));
});
重命名

cmd命令:cnpm install gulp-rename --save-dev

const gulp_rename = require('gulp-rename');
//合并 压缩 重命名 拷贝
gulp.task("_rename",function(){    gulp.src(["js/a.js","js/b.js"]).pipe(gulp_concat("tools.js")).pipe(gulp_uglify()).pipe(gulp_rename("tools.min.js")).pipe(gulp.dest("d:/dest"));
});
ES6转ES5

cnpm install --save-dev babel-preset-es2015

cnpm install --save-dev gulp-babel@7 babel-core babel-preset-env

const gulp_babel = require('gulp-babel');
gulp.task("_babel",function(){
    gulp.src("MF.js").pipe(gulp_babel({presets: ['es2015']})).pipe(gulp.dest("d:/dest"));
});

正在进行的项目如何用gulp:

  1. 新建空文件夹做为项目的文件夹(不要用gulp做为项目文件夹)
  2. 用npm初始化项目:用npm ini命令产生package.json文件(第五步)
  3. 本地安装gulp
  4. 把项目目前的全部文件拷贝的到新建的项目文件夹里
  5. 在项目根目录下写gulpfile.js的代码

简化版:

使用步骤1.下载全局gulp命令 cnpm install gulp -g2.cnpm init 建立配置文件3.下载gulp 模块 cnpm install gulp --save-dev4.在项目根目录下建立 gulpfile.js

相关文章
相关标签/搜索