【gulp】gulp 的基本使用

ops/2024/12/27 10:46:12/

gulp 是一个基于node的自动化打包构建工具,前端开发者可以使用它来处理常见任务:

创建项目

进入项目

    npm init -ynpm i gulp -g  (使用命令 gulp)npm i gulp -D   #     开发依赖(前端工具都是开发依赖  本地安装 代码加载模块)npm i axios   #npm i axios --save         项目依赖-线上项目依赖(线上的代码需要用到 比如 axios)#dev 开发环境   源代码 - 使用一个工具 gulp把代码进行压缩#test 测试环境#生产环境 线上   css,js,html 压缩   不需要使用gulp

gulpfilejs">项目根目录中创建 gulpfile.js

const gulp = require('gulp');
gulp.task('tname',function(cb){//任务代码cb()
})
在终端中:gulp tnamegulp.task('tname',function(){//任务代码console.log('t1')console.log('t2')// 1-获取对应的文件gulp.src('src/js/*.js') //文件流// 2-管道里 做一个处理    压缩处理 安装插件// .pipe(调用一个插件)// 3-管道存放到另一个地方.pipe(gulp.dest('dist/js'))})

安装编译压缩 scss 插件


npm install sass gulp-sass --save-dev
var sass = require('gulp-sass')(require('sass'))
// 定义一个任务
gulp.task('scss', function (cb) {//任务代码console.log('任务代码scss');gulp.src('./src/scss/**/*.scss')//获取文件.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))//通过gulp插件处理文件.pipe(gulp.dest('./src/css'))//把处理之后的文件 放到 dist/js下.pipe(gulp.dest('./dist/css'))//把处理之后的文件 放到 dist/js下cb()
})gulp.task('w', function (cb) {// 监听路径下scss文件,一旦文件有变化,执行scss任务// console.log('开始监听scss文件的变化');gulp.watch('./src/scss/**/*.scss', gulp.parallel(['scss']));cb()
})

安装压缩 js 插件

 npm i gulp-uglify -D

在文件中定义任务

var gulp = require("gulp");
var uglify = require("gulp-uglify");
gulp.task("js", function () {console.log("js任务代码");gulp.src("./src/js/*.js").pipe(uglify()).pipe(gulp.dest("./dist/js"));
});

gulp-js-%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1">在终端中输入 gulp js 执行任务

编译js 高版本js转低版本

gulp-babel-babelcore-babelpreset-env">npm install --save-dev gulp-babel @babel/core @babel/preset-env


const babel = require('gulp-babel');
gulp.task('babel', () =>gulp.src('src/js/**/*.js').pipe(babel({presets: ['@babel/env']})).pipe(gulp.dest('dist/js'))
);
// 压缩js   npm install --save-dev gulp-uglifyvar uglify = require('gulp-uglify');
gulp.task('compress',function(){// 获取js文件gulp.src('./src/js/**/*.js')// 转译插件 高版本js 转出 es5.pipe(babel({presets: ['@babel/env']}))// es5代码 压缩.pipe(uglify())// 输出到 dist.pipe(gulp.dest('./dist/js'))
})

gulp-concat--d">npm install gulp-concat -D

// 合并js
var concat = require('gulp-concat');
gulp.task('concat', function (cb) {// 获取要合并的js文件gulp.src((['./src/js/login/login-a.js', './src/js/login/login-b.js']))// 合并.pipe(concat('login.js'))// 输出.pipe(gulp.dest('./src/js'))cb()
})

gulp-htmlmin--d">npm install gulp-htmlmin -D

//gulp-htmlmin  压缩html
var htmlmin = require('gulp-htmlmin');
gulp.task('htmlmin', function() {gulp.src('src/**/*.html')
//    压缩html代码 去掉了 空格和换行.pipe(htmlmin({collapseWhitespace: true})).pipe(gulp.dest('dist'));
})

gulp-connect--d">npm install gulp-connect -D

var connect = require("gulp-connect");// 刷新任务
gulp.task("reload", function () {gulp.src("./src/**/*.html").pipe(connect.reload());
});gulp.task('w', function (cb) {// 启动一台http服务器connect.server({livereload: true,});// 监听路径下scss文件,一旦文件有变化,执行scss任务// console.log('开始监听scss文件的变化');gulp.watch('./src/scss/**/*.scss', gulp.parallel(['scss']));gulp.watch('src/*.html', gulp.parallel(['minify']));gulp.watch('src/js/*.js', gulp.parallel(['js']));gulp.watch('src/js/login/*.js', gulp.parallel(['concat']));// 监听所有文件的变化gulp.watch('src/**/*.*', gulp.parallel(['reload']))cb()
})

gulp-imagemin--d">npm i gulp-imagemin -D

npm i gulp-imagemin@7 -D

const imagemin = require('gulp-imagemin');
gulp.task('imagemin', function () {gulp.src('src/images/*').pipe(imagemin()).pipe(gulp.dest('dist/images'))
})

打包任务

gulp.task('build', gulp.series(['js', 'sass', 'minify']), function () {console.log('项目的构件压缩完毕!');})

网址:gulp.js - 基于流(stream)的自动化构建工具 | gulp.js中文网 


http://www.ppmy.cn/ops/145353.html

相关文章

面试问题-华勤技术(软件开发岗)

博主base无锡,刚考完研,顺手投了简历到华勤的校招邮箱,然后第二天上午发信息笔试,考的是c语言/c测试卷,只有选择题和判断题,然后是文段阅读理解卷,数据图表计算卷以及性格测试卷;难度…

centos单机部署seata

文章目录 场景分析下载seata包启动 场景 centos7.9 jdk17 安装部署seata 分析 jdk和seata的版本对应关系如图 JDK版本 推荐 Seata 版本 理由 JDK 8 任何 Seata 版本 JDK 8 是 Seata 长期支持的版本,兼容性最好。 JDK 11 Seata 1.2.0 适合需要长期支持且性能较高的应…

Unity 踩坑记录 将Image 的 Image Type 设置成 sliced 不显示图片

将Image 的 Image Type 设置成 sliced 不显示图片 检查 image 自身的 pixels per Unity multplier 的值 和canvas reference pixels per 的值(默认100)

每日一练 | DHCP 客户端续约过程

01 真题题目 在 DHCP 运行过程中,如果客户端 IP 地址在租约过去 87.5%还没有完成续约的话,客户端将发送什么报文进行再次续约? A. DHCPdiscover 广播报文 B. DHCP release 单播报文 C. DHCPrequest 广播报文 D. DHCPrequest 单播报文 02 真题…

springboot 上传图片 转存成webp

第一步先引入包 <!-- webp-imageio 依赖 --><dependency><groupId>org.sejda.imageio</groupId><artifactId>webp-imageio</artifactId><version>0.1.6</version></dependency>下面就是上传的时候处理的了 /*** 通用上传…

【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等

【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等 1、OH私仓如何创建&#xff1f; 可以参照以下文档来搭建OH私仓&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-quic…

云渲染,Enscape、D5、Lumion渲染提速教程

Enscape、D5、Lumion 等实时渲染软件&#xff0c;我们如何借助云渲染来提升效率呢&#xff1f;下面为您详细介绍操作步骤。 第一步&#xff0c;打开川翔云电脑官网 使用邀请码 6666 进行注册&#xff0c;然后下载客户端。 第二步&#xff0c; “云盘” 将 SU 等软件安装包以及…

MySQL-MVCC(多版本并发控制)

MySQL中的MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种并发控制机制&#xff0c;用于提供读-写冲突时的可靠读取。 MVCC通过保存数据在某个时间点的快照来实现这一点&#xff0c;从而避免了传统的锁定方法。在InnoDB存储引擎中&#xff0c;MVCC是通过…