javaScript学习笔记day32————gulp

概念

gulp是一个自动化打包构建的一个工具,把我所写的文件压缩到指定的文件夹中;但它需要依赖一个node环境
 

gulp的安装:所以我们要在node中下载它npm i gulp -g    检测一下版本gulp -v   cnpm i gulp -g;

全局变量:gulp是一个工具,也是一个第三方模块,

项目依赖:是一个插件,第三模块,会在项目中使用到

压缩文件

压缩文件的步骤:

创建项目源码的目录结构

npm  init 生成项目的目录机构

创建项目结构(项目中所需要的文件夹)

安装gulp依赖,npm install--save-dev gulp

创建一个gulp的配置文件gulpfile.js;

配置gulpfile文件:

在gulpfile.js中导入gulp 依赖的‘npm install --save-dev’ v4版本

使用gulp创建一个压缩任务(在gulpfile.js写任务)

让gulp 的命令行中跑起来,帮我们执行压缩gulp任务名称

创建压缩任务:

  • 把gulp模块引入gulpfile.js文件中
  • 声明一个函数压缩任务的函数:function css(),并且这个函数中必须有returen
  • 在这个函数中写任务:
  1. gulp.src(需要压缩的 css 文件地址)
  2. 找到这些文件之后,就进行压缩   gulp.pipe() 这个方法就是帮我们做事情的,你可以在中这个括号中写正则把空格去掉,但是这样比较麻烦,已经有别人写好了这个插件(gulp-cssmin),我们直接下载就可以了 -D 就是--save-dev 的缩写
  3. 把压缩的文件放到指定的文件夹中 gulp.dest('你要放到哪里') + pipe(gulp.dest('文件路径')) + gulp.dest() 是一个方法,需要用 pipe() 来执行
  4. 必须要用exports把函数导出 才能使用
  5. gulpCss回车能得到结果
  function css() {
        return gulp
            .src("./src/css/**")
            .pipe(cssmin())
            .pipe(gulp.dest("./dist/css"));
    }
exports.gulpCss = css;

压缩文件的第三模块:压缩css

压缩css

  • npm i gulp-cssmin -D

压缩js

  • npm i -D gulp-babel@7.0.1
  • npm i -D babel-core
  • npm i -D babel-preset-env
  • npm i -D gulp-gulify
  • 创建压缩js的代码
  • 压缩 js 代码,必须先把 ES6 的代码转化为 es5 才能压缩 babel 就是转化的
  • function js() {
        return gulp
            .src("./src/js/**")
            .pipe(
                babel({
                    presets: ["env"],
                })
            )
            .pipe(uglify())
            .pipe(gulp.dest("./dist/js"));
    }

压缩html

  • cnpm i -D gulp-htmlmin
  • 创建压缩html的代码
  • 压缩 HTML 的时候必须传递一个参数,为对象
  •     {
            collapseWhitespace: true, // 表示去除空格
            removeEmptyAttributes: true, // 移出空的属性
            minifyCSS: true, // 压缩 style 标签
            minifyJS: true, // 压缩 script 标签
        }

清除缓存

  • npm i -D gulp-clean
  • 
    function clean() {
        return gulp.src(["./dist"]).pipe(gulpclean());
    }

创建一个多任务执行的任务

  •  gulp.series() 按顺序依次执行 同步执行,前面的任务执行完成之后在执行后面的任务gulp.parallel() 一起的任务同时执行 异步执行,会同时开启所有的任务,谁先执行完
exports.build = gulp.series(clean, css, js, html, data, static);
  •  在命令行 `gulp build` 就相当于执行这个两个方法中的所有任务

创建一个压缩完之后打开浏览器的服务

  • 下载gulp-webserver模块
  • npm install gulp-webserver

 导入模块:webserver需要传递一个参数

function webserver() {
        return gulp.src("./dist").pipe(
            webservers({
                host: "localhost", // 域名
                port: 3000, // 监听的端口号,统一写 3000
                open: "./html/index.html", // 打开的页面,相对于 dist 文件夹来的目录
                livereload: true, // 浏览器自动刷新,
                proxies: [
                    {
                        source: "/api", //随便起,相当于你要请求接口的替换名 ajax请求时就用这个名字
                        target: "https://www.duitang.com/", //需要请求的接口
                    },
                    {
                        source: "/maoyan", //随便起,相当于你要请求接口的替换名 ajax请求时就用这个名字
                        target: "http://gz2107.com", //需要请求的接口
                    }
                ],
            })
        );
    }

创建一个实时监听的任务(需要用到gulp.watch())

function watchs() {
    gulp.watch("./src/css", css);
    gulp.watch("./src/js", js);
    gulp.watch("./src/html", html);
    gulp.watch("./src/data", data);
    gulp.watch("./src/static", static);
}

导出模块:

// 必须要导出 只有导出之后 才能之后在命令行中执行这个任务 才会去执行压缩的代码
exports.css = css;
exports.js = js;
exports.html = html;
exports.img = img;
exports.data = data;
exports.clean = clear;
exports.server = server;
exports.babelPlitfill = babelPlitfill

exports.build = gulp.series(clear,
    gulp.parallel(css, indexHtml, html, js, bootstrap, img,data,babelPlitfill),
    server, watch)

复制某个模块:

function img() {
    return gulp.src("./src/img/**").pipe(gulp.dest("./dist/img"));
}

function bootstrap() {
    return gulp.src('./src/bootstrap/**').pipe(gulp.dest("./dist/bootstrap"));
}
function data() {
    return gulp.src("./src/data/**").pipe(gulp.dest("./dist/data"));
}

 

## 二阶段项目目录结构
-   登录注册 以及你自己写的数据放在phpstudy中 www 用phpstudy开启服务运行后端代码


-   前端项目
    +   用gulp开启服务来写前端代码
    +   在前端配置代理 请求后端的数据接口


## 用gulp开启服务 来写前端代码登录注册效果
-   涉及到代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值