gulp 配置前端项目打包
项目发布时,需要对项目js文件进行压缩,混淆,连接等操作以减小项目http请求,加快访问。
gulpjs.com中有很多插件可以用来配置打包部署。
需要用的常用插件有:
gulp-jsmin 压缩js
gulp-minify-css 压缩css
gulp-imagemin 压缩图片
gulp-rename 重命名
gulp-clean 清空文件夹
gulp-copy 拷贝引用库,字体等文件
gulp-replace 替换html内容(将原来.js引用改为.min.js引用)
前置过程不再赘述,安装插件:
npm install --save-dev gulp gulp-jsmin gulp-minify-css gulp-imagemin gulp-rename gulp-clean gulp-copy gulp-replace
const gulp = require('gulp'),
jsmin = require('gulp-jsmin'),
cssmin = require('gulp-minify-css'),
rename = require('gulp-rename'),
copy = require('gulp-copy'),
clean = require('gulp-clean'),
imagemin = require('gulp-imagemin'),
replace = require('gulp-replace'); // 清空文件夹
gulp.task('clean', () => {
gulp.src('dist')
.pipe(clean())
}) // js压缩
gulp.task('jsmin', () => {
gulp.src('js/*.js')
.pipe(jsmin())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('dist/js'));
}); // css压缩
gulp.task('cssmin', () => {
gulp.src('css/*.css')
.pipe(cssmin())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('dist/css'))
}); // 压缩图片
gulp.task('imagemin', () => {
gulp.src('images/*')
.pipe(imagemin())
.pipe(gulp.dest('dist/images/'))
}); // 复制文件
gulp.task('copy', () => {
gulp.src('lib/**/*')
.pipe(copy('dist'))
}); // 替换HTML中的js及css引用为.min引用
gulp.task('replace', () => {
gulp.src('index.html')
.pipe(replace(/js\/.*\./g, '$&min.'))
.pipe(replace(/css\/.*\./g, '$&min.'))
.pipe(gulp.dest('dist'))
}); // 部署任务
gulp.task('deploy', [
'clean',
'jsmin',
'cssmin',
'imagemin',
'copy',
'replace'
]);
以上,即可完成一套前端项目的打包。
gulp 配置前端项目打包的更多相关文章
- Android使用gradle不同配置多项目打包
//build.gradle该配置文件里路径均是相对路径 apply plugin: 'com.android.application' android { def suffix = "su ...
- vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录
vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...
- springboot系列三、springboot 单元测试、配置访问路径、多个配置文件和多环境配置,项目打包发布
一.单元测试 生成的demo里面包含spring-boot-starter-test :测试模块,包括JUnit.Hamcrest.Mockito,没有的手动加上. <dependency> ...
- 前端项目打包工具weexpack的安装
最下面是本人安装时候的系统环境,本篇文章只限于参考,不一定非得是这样,原因你懂得. 打包的过程中出现的问题 1.执行到weexpack run android的时候,到了resolving class ...
- r.js 前端项目打包
目录结构
- pipeline配置前端项目
vue pipeline { agent { label 'master'} options { timestamps() disableConcurrentBuilds() buildDiscard ...
- Django项目引入NPM和gulp管理前端资源
前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...
- 使用jenkins进行前端项目自动部署
前面的话 后端的nodeJS项目可以使用pm2进行自动部署,由于前端项目打包后是静态资源,不需要进程守护.一般地,前端项目使用jenkins来进行自动部署,包括打包.测试等一系列流程.本文将详细介绍j ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署
项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...
随机推荐
- ZOJ 3209 Treasure Map (Dancing Links)
Treasure Map Time Limit: 2 Seconds Memory Limit: 32768 KB Your boss once had got many copies of ...
- String、StringBuffer、StringBuilder的区别
在日常开发过程中String字符串估计是被用到最多的变量了,最近看了一些String.StringBuffer和StringBuilder的东西,三者都可以对字符串进行操作,他们究竟有什么区别,以及适 ...
- c程序中出现segment error 和 bus error 的原因
在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...
- sql server 分页存储过程
----------------------分页存储过程------------------------------------------------------------------------ ...
- 根据UIColor对象,获取对应的RGBA值
- (NSArray *)getRGBWithColor:(UIColor *)color { CGFloat red = 0.0; CGFloat green = 0.0; CGFloat blue ...
- Splinter学习--初探3,两种方式登录QQ邮箱
目前,qq邮箱的登录方式有: 1.利用账号.密码登录 2.快捷登录,前提是你本地已有qq账号登录中 和前面一样,还是先到qq邮箱登录首页,审查页面元素,找到我们进行登录操作所相关的链接.按钮或是输入框 ...
- 技术英文单词贴--I
I increase 增加,增大 individual 个人的,个别的 instead 代替 integer 整数,整形
- Android环境配置及运行helloWord案例
Android的环境搭建步骤,以及输出一个helloWorder 1:下载Android开发环境 及是: SDK adt-bundle-windows-x86_64-20140702 此时的版 ...
- 不起眼的 z-index 却能牵扯出这么大的学问
z-index在日常开发中算是一个比较常用的样式,一般理解就是设置标签在z轴先后顺序,z-index值大的显示在最前面,小的则会被遮挡,是的,z-index的实际作用就是这样. 但是你真的了解z-in ...
- Cookie的Secure属性
基于安全的考虑,需要给cookie加上Secure和HttpOnly属性,HttpOnly比较好理解,设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie ...