gulp打包,做哪些基础操作

本文介绍了gulp的基础操作,包括gulp的定义,安装、卸载和版本检查。详细讲述了打包过程,从项目初始化到创建gulpfile.js,配置打包规则,以及使用如src、pipe、dest、parallel、series和watch等核心方法进行文件管理和任务执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先gulp是什么?

gulp是基于node的自动化打包工具
gulp可以对我们的代码进行压缩,混淆和合并的操作

gulp工具的安装,检查和卸载

安装: npm install --global gulp
卸载: npm uninstall --global gulp
检查: npm --version 如果安装成功了,会显示gulp的版本号

打包的操作步骤

1.有项目的原始代码和素材组成的文件夹,不同类型的代码要分门别类的放好
打包前的代码和素材文件夹
2.初始化当前的项目 终端下执行npm init -y
执行这个指令后,会生成一个package.json文件,记录项目过程中,包的使用情况
3.在项目的根目录下,创建gulpfile.js文件,在这个文件里面,正式书写我们的打包规则
在终端里,进入到项目文件夹下,执行 npm i -D gulp下载gulp第三方依赖包.这个gulp包和上面那个全局gulp包虽然长得一样,但是在项目里起的作用却不一样,还是需要再下一个.
这个gulp引入后,自带一些方法:
src(‘路径’)这个方法就是打开某个路径
pipe(操作)这个方法就是执行什么操作
dest(‘路径’)将打包好的文件塞到某个目录里,如果目录不存在,就创建一个
parallel(方法1,方法2,……)并行执行多个任务
series(方法1,方法2,……)逐个执行多个任务
watch(‘文件’,方法)自动监控文件,如果有文件修改了,就执行对应的方法
打开gulpfile.js,进行规则的书写

//项目根目录下 安装gulp
//引入进来
const gulp=require('gulp')

//下载引入压缩html的包
const htmlmin=require('gulp-htmlmin')
//下载引入压缩css的包
const cssmin=require('gulp-cssmin')
//下载并且引入处理css前缀的包
const antoprefixer=require('gulp-autoprefixer')
//下载引入压缩js包
const jsmin=require('gulp-uglify')//这个包不能处理es6的语法
//下载引入将es6转为es5的包
const babel=require('gulp-babel')
//终端上也要下载@babel/core 和@babel/preset-env因为babel包依赖这两个包,但是不必单独导入进来
//下载引入del包
const del=require('del')
//下载引入开启服务器的包
const webserver=require('gulp-webserver')

//html的压缩方法  去掉了空格
const htmlHandler=()=>{
    return gulp.src('./src/html/*.html')//处理这个路径下的所有html
                .pipe(htmlmin({
                    removeAttributeQuotes:true,//去掉属性的引号
                    removeComments:true,//去掉注释
                    collapseBooleanAttributes:true,//去掉值为布尔值的属性
                    collapseWhitespace:true,//去掉空格
                    minifyCSS:true,//内部css样式压缩
                    minifyJS:true//内部js的压缩
                }))
                .pipe(gulp.dest('./dist/html'))//压缩好,塞进这里面
}

//css的压缩方法  去掉了空格
const cssHandler=()=>{
    return gulp.src('./src/css/*.css')//处理这个路径下的所有css
                .pipe(antoprefixer())//给样式添加前缀
                .pipe(cssmin()).pipe(gulp.dest('./dist/css'))
}

//js的压缩方法  去掉了空格
const jsHandler=()=>{
    return gulp.src('./src/js/*.js')
                .pipe(babel({
                    presets:['@babel/env']
                }))//将js中的所有es6语法转化为es5
                .pipe(jsmin())
                .pipe(gulp.dest('./dist/js'))
}

//img打包转移,图片压缩,容易失帧,并且设计师对图片已经进行了处理,一般不需要我们再处理,就不要压缩了
const imgHandler=()=>{
    return gulp.src('./src/img/**')
                .pipe(gulp.dest('./dist/img'))
}

//lib的打包转移
const libHandler=()=>{
    return gulp.src('./src/lib/**')
                .pipe(gulp.dest('./dist/lib'))
}
//打包前删除dist目录
const delDist=()=>{
    return del(['./dist'])
}
//开启服务器
const webServerHandler=()=>{
    return gulp.src('./dist')  //定义了根目录
                .pipe(webserver({
                    /*host:'www.wsysy.com',可自定义一个域名,不过不能是已经存在的,定义一个没存在的,然后修改本机hosts文件的设置,就可以访问*/
                    host:'localhost',
                    port:8888,
                    open:'./html/wsy.html',//设置默认打开页面
                    livereload:true//dist中有代码跟新,页面是否自动刷新
                }))
}

const watchHandler=()=>{//自动监控文件,如果有文件修改了,就执行对应的方法
    gulp.watch('./src/html/*.html',htmlHandler)
    gulp.watch('./src/html/*.css',cssHandler)
    gulp.watch('./src/html/*.js',jsHandler)
    gulp.watch('./src/html/**',imgHandler)
    gulp.watch('./src/html/**',libHandler)
}

module.exports.default=gulp.series(
    delDist,
    gulp.parallel(htmlHandler,cssHandler,jsHandler,imgHandler,libHandler),
    webServerHandler,
    watchHandler
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值