gulp3与gulp4
2020-08-19 17:53
148 查看
gulp安装与插件的安装
npm i gulp@3 -g 全局安装gulp@3 npm i gulp -g 全局安装gulp npm i gulp@3 --save-dev 安装本地的gulp@3 npm i gulp --save-dev 安装本地的gulp npm init -y 初始化gulp的package.json
npm i gulp-load-plugins --save-dev 加载全部插件,且在引入全部插件后头部要多写一句var plugins=require("gulp-load-plugins")(); npm i gulp-concat --save-dev 连接整合插件 npm i gulp-rename --save-dev 重命名插件 npm i gulp-uglify --save-dev 压缩插件 npm i gulp-sass --save-dev sass插件 npm i gulp-minify-css --save-dev 压缩css文件插件 npm i browser-sync --save-dev 浏览器异步插件,browser加载进来是一个对象,下面有一个方法create(),他是一个服务器 把方法中的--save-dev全部改成-D就不需要再改package.json文件中的内容了,直接写入devDependencies
npm uninstall gulp -g 卸载gulp
gulp本地下载后package.json的配置
要将dependencies里的内容剪切到devDependencies中。
{ "name": "8.18", "version": "1.0.0", "description": "", "main": "index.js", "dependencies": { }, "devDependencies": { "gulp-concat": "^2.6.1", "gulp": "^3.9.1", "gulp-load-plugins": "^2.0.3", "gulp-sass": "^4.1.0", "gulp-uglify": "^3.0.2", "gulp-rename": "^2.0.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
但是所有加载插件的语句中–save-dev改为-D 就可以直接写入到devDependencies中。
gulp4中的语法
var gulp=require("gulp"); //在gulp4中默认每个任务都是异步执行的,所以在执行含有前置任务的任务时,要在每个前置任务中加入done(),如果不在前置任务中加done(),就会导致任务无法正常进行,系统会默认前置任务还未执行完,从而不能执行任务本身。但是promise任务中不需要再加done gulp.task("a",function(){ return new Promise(function(resolve){ console.log("aaa"); resolve(); }) }) gulp.task("b",function(done){ console.log("bbb"); done(); }) gulp.task("default",gulp.series(["a","b"],function(done){ console.log("ccc"); done(); }))//有前置任务的写法 //写gulp侦听(watch)的时候,一定要加上done,否则它会认为你上个侦听一直在进行,当你更改侦听目录里的内容时,侦听便不再生效 gulp.task("default",function(){ gulp.watch("./js/*.js",gulp.series(function(done){ console.log("aa"); done(); })) })
另一种方式安装gulp4方法,依然可以正常使用
npm install gulp-cli -g npm install gulp -D npx -p touch nodetouch gulpfile.js gulp --help npm init -y初始化 在新建的gulpfile.js的中写入: function a(done){ console.log("aaa"); done(); } function b(done){ console.log("bbb"); done(); } exports.a=a; exports.b=b; exports.default=gulp.series([a,b],function(done){ console.log("cc"); done() });
搭建服务器更新css
安装过所有的插件之后
服务器:
var gulp=require("gulp"); var load=require("gulp-load-plugins")(); var browser=require("browser-sync").create(); //browser加载进来是一个对象,下面有一个方法create(),他是一个服务器 /* 存储css函数 加载sass文件夹下的所有scss文件 解析为sass 连接总和所有的css内容加载到main.css文件中 压缩该css文件 对该css文件重命名为main.min.css 存储在该路径下的dist文件夹下的css文件夹下 侦听一个end事件,当保存完成时触发browser.reload(重载) 记得最后return,否则在重载一次后不会停止函数,从而无法重复重载 */ function saveCss(done){ gulp.src("./sass/*.scss") .pipe(load.sass()) .pipe(load.concat("main.css")) .pipe(load.minifyCss()) .pipe(load.rename("main.min.css")) .pipe(gulp.dest("./dist/css/")) .on("end",browser.reload); //end:保存完成而不是load:加载完成 return done(); } /* 默认导出该方法, 打开服务器 监视html页面,实时更新页面,也要done 监视scss页面,实时处理css文件 */ exports.default=function(){ //首先开启服务器 browser.init({ server:"./", port:4001 }) //监视html页面,有变化就更新页面 gulp.watch("./*.html",function(done){ browser.reload(); done; }); gulp.watch("./sass/*.scss",saveCss) }
客户端:
引入:
<link rel="stylesheet" href="./dist/css/main.min.css">
相关文章推荐
- gulp-connect插件浏览器实时同步刷新
- 如何编写一个gulp插件
- gulp-基本功能总汇
- 精通gulp常用插件
- gulp 系统教程
- gulp+browser-sync使用方法
- 精通gulp常用插件
- Gulp自动构建Web前端程序
- gulp入门(1) - 安装篇
- gulp插件(12) - run-sequence(同步执行任务)
- gulp的简单使用
- gulp基于流的自动化构建工具的使用《初》
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 简单的Gulp配置
- gulp详细入门教程
- jshint在gulp中的使用
- 使用Gulp构建前端项目
- windows10安装gulp cnpm git bower等工具总结
- Gulp和webpack的区别,是一种工具吗?
- 前度构建工具gulp