项目发布时,需要对项目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 配置前端项目打包的更多相关文章

  1. Android使用gradle不同配置多项目打包

    //build.gradle该配置文件里路径均是相对路径 apply plugin: 'com.android.application' android { def suffix = "su ...

  2. vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录

    vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...

  3. springboot系列三、springboot 单元测试、配置访问路径、多个配置文件和多环境配置,项目打包发布

    一.单元测试 生成的demo里面包含spring-boot-starter-test :测试模块,包括JUnit.Hamcrest.Mockito,没有的手动加上. <dependency> ...

  4. 前端项目打包工具weexpack的安装

    最下面是本人安装时候的系统环境,本篇文章只限于参考,不一定非得是这样,原因你懂得. 打包的过程中出现的问题 1.执行到weexpack run android的时候,到了resolving class ...

  5. r.js 前端项目打包

    目录结构

  6. pipeline配置前端项目

    vue pipeline { agent { label 'master'} options { timestamps() disableConcurrentBuilds() buildDiscard ...

  7. Django项目引入NPM和gulp管理前端资源

    前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...

  8. 使用jenkins进行前端项目自动部署

    前面的话 后端的nodeJS项目可以使用pm2进行自动部署,由于前端项目打包后是静态资源,不需要进程守护.一般地,前端项目使用jenkins来进行自动部署,包括打包.测试等一系列流程.本文将详细介绍j ...

  9. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署

    项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...

随机推荐

  1. C++函数CString类常用函数

    C++ STL库里有很多与字符串操作相关的函数,熟练应用STL,字符串的处理将变得轻松.自在. 字符串截取函数: 1.CString Left( int nCount ) const;    //从左 ...

  2. centos 6.5 msyql5.6安装

    MySQL 安装 安装mysql前需要查询系统中含有的有关mysql的软件. rpm -qa | grep -i mysql   如下 代表有mysql ,则先进行卸载 mysql-libs-5.1. ...

  3. Git保存密码

    TortoiseGit中,通过https方式连接时,默认是不会保存帐号密码,需要我们每次输入一次,真心很麻烦! 通过简单的设置,就可以解决这一问题! 编辑仓库目录中本地的”.git/config”文件 ...

  4. 模板:正则替换之后生成标准的php文件 然后include该文件

    http://www.360doc.com/content/12/0808/16/10388890_229034643.shtml

  5. maven 编译项目时:报com.sun.image.codec.jpeg不存在

    项目中用到图片处理相关的一些工具类,在eclipse开发工具内,程序并没有什么问题,都可以正常使用,项目也没有报错,但通过maven 进行编译打包时,则会报错: 程序包com.sun.image.co ...

  6. 通过RGB灯输出七色

    本文由博主原创,如有不对之处请指明,转载请说明出处. /********************************* 代码功能:输出模拟信号,控制RGB灯的颜色 使用函数: pinMode(引脚 ...

  7. JS绑定JavaScript事件

    //onblur="onblurs(this)" // function onblurs(e) { // alert(e.value); // }

  8. sugar 自动为DP 加cache (or打表)

    // from http://www.csdn.net/article/2015-12-03/2826381 #include <iostream> #include <tuple& ...

  9. 简洁的java代码

    最近在codewars上刷题,学习到了不少简洁优雅的代码. codewars和leetcode都是刷题网站,codewars的题目难度分类比较广,适合各种不同水平的coder刷题. 刷完题后,看一下其 ...

  10. vue-cli快速构建Vue项目

    vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...