Angular企业级开发(6)-使用Gulp构建和打包前端项目

1.gulp介绍
基于流的前端自动化构建工具,利用gulp可以提高前端开发效率,特别是在前后端分离的项目中。使用gulp能完成以下任务:
- 压缩html、css和js
- 编译less或sass等
- 压缩图片
- 启动本地静态服务器
- 其他
2.gulp构建
前端构建流程:
开发->分析->测试->编译->发布部署
一段简单的基于gulp的项目构建代码,gulpfile.js内容如下所示:
gulp.task('default',function(){
return gulp
.src("**/*.js")
.pipe(jshint())
.pipe(concat())
.pipe(uglify())
.pipe(gulp.dest('./build/'))
})
上面gulp配置完成的内容是:
1.将目录下所有的以.js结尾的文件
2.执行jshint代码检查
3.然后concat合并为一个文件,
4.再使用uglify对文件进行压缩,
5.最后输出到当前目录下,build文件夹中。
项目构建中需要使用的模块有以下这些:
var gulp = require("gulp");
//connect静态服务器
var connect = require("gulp-connect");
// 合并文件模块
var concat = require('gulp-concat');
//less编译模块
var less = require('gulp-less');
//压缩js
var uglify = require('gulp-uglify');
//压缩css
var minifyCss = require('gulp-minify-css');
//压缩html
var minifyHtml = require('gulp-minify-html');
//项目中需要将.less文件重命名为.css
var rename = require('gulp-rename');
//jshint检查js静态语法检查
var jshint = require('gulp-jshint');
3.gulp打包
因为项目中使用bower进行类库的管理,所以在项目打包的过程,需要从bower_components文件夹中就项目实际使用的js和css文件复制发布文件夹中。在gulpfile.js中有一个task名为vendor,主要任务就是将项目中实际使用的js和css复制到发布文件夹中。我们项目发布文件夹名字为dist。task代码如下:
gulp.task('vendor', function () {
gulp.src([
'app/assets/bower_components/ui-select/dist/select.min.css',
'app/assets/bower_components/toastr/toastr.min.css',
'app/assets/bower_components/angular-tour/dist/angular-tour.css',
'app/assets/bower_components/jquery/jquery.min.js',
'app/assets/bower_components/angular/angular.min.js',
'app/assets/bower_components/angular-cookies/angular-cookies.min.js',
'app/assets/bower_components/angular-messages/angular-messages.min.js',
'app/assets/bower_components/angular-animate/angular-animate.min.js ',
'app/assets/bower_components/bootstrap/dist/js/bootstrap.min.js',
'app/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
'app/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js',
'app/assets/bower_components/angular-sanitize/angular-sanitize.min.js',
'app/assets/bower_components/ui-select/dist/select.js',
'app/assets/bower_components/oclazyload/dist/oclazyload.min.js',
'app/assets/bower_components/angular-smart-table/dist/smart-table.min.js',
'app/assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js',
'app/assets/bower_components/echarts/dist/echarts.min.js',
'app/assets/bower_components/angular-tour/dist/angular-tour-tpls.js',
'app/assets/bower_components/toastr/toastr.min.js'
], { base: 'app' })
.pipe(gulp.dest("dist"));
});
开发的源代码 vs 发布的代码文件文件大小对比


4.参考内容
Angular企业级开发(6)-使用Gulp构建和打包前端项目的更多相关文章
- 用gulp构建你的前端项目
前言 前端技术发展日新月异,随着模块化.组件化的提出,前端变得越来越复杂,静态资源越来越多,那么对静态资源的处理,如压缩,合并,去掉调试信息.. 如果还是人工去处理,效率非常之低且还容易出错,于是自动 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- Angular企业级开发(2)-搭建Angular开发环境
1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...
- gulp + webpack 构建多页面前端项目
修改增加了demo地址 gulp-webpack-demo 之前在使用gulp和webpack对项目进行构建的时候遇到了一些问题,最终算是搭建了一套比较完整的解决方案,接下来这篇文章以一个实际项目为例 ...
- Angular企业级开发-AngularJS1.x学习路径
博客目录 有链接的表明已经完成了,其他的正在建设中. 1.AngularJS简介 2.搭建Angular开发环境 3.Angular MVC实现 4.[Angular项目目录结构] 5.[SPA介绍] ...
- Angular企业级开发(7)-MVC之控制器
1.MVC中的控制器 AngularJS的控制器主要为了把模型和视图连接在一起.大多数业务逻辑操作都会放在视图对应的控制器中.当然如果我们能够把业务逻辑放到后端的REST服务中,就可以开发轻量级Ang ...
- Angular企业级开发(4)-ngResource和REST介绍
一.RESTful介绍 RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来 ...
- Angular企业级开发(3)-Angular MVC实现
1.MVC介绍 Model-View-Controller 在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并 ...
- Angular企业级开发(1)-AngularJS简介
AngularJS介绍 AngularJS是一个功能完善的JavaScript前端框架,同时是基于MVC(Model-View-Controller理念的框架,使用它能够高效的开发桌面web app和 ...
随机推荐
- Xcode7 免证书真机测试
Xcode很早就有个免证书测试,今天我自己也测试了一把,还是挺好用的,接下来,我就说一下我的大体过程: 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题 ...
- [iOS]C语言技术视频-05-程序循环结构(do{}while();)
下载地址: 链接: http://pan.baidu.com/s/1c02ke3m 密码: x97w
- (中等) POJ 1084 Square Destroyer , DLX+可重复覆盖。
Description The left figure below shows a complete 3*3 grid made with 2*(3*4) (=24) matchsticks. The ...
- WAV音频格式分析
wav是windows下无损的声音文件,该文件保存了音频的PCM信息和播放器播放该音乐的时候的大多数信息,他有两个块组成,第一个块是格式块,第二个块是数据块 先说格式块,格式块用一张图可以解释,如下 ...
- HDU 4008 Parent and son
树形DP+LCA+思路.这题可真是有点难度......所以准备详细写一下题解. 题意:给一颗无根树,有Q次询问,每次询问指定一个根节点X,然后让你计算Y节点的儿子和子孙中,编号最小的节点是多少. 我们 ...
- mvn
http://blog.csdn.net/z69183787/article/category/2265961
- JDBC连接数据库以及简单的操作
package com.zhiyuan.jdbc.util; import java.sql.Connection;import java.sql.DriverManager;import java. ...
- Spring Junit 读取WEB-INF下的配置文件
假设Spring配置文件为applicationContext.xml 一.Spring配置文件在类路径下面 在Spring的java应用程序中,一般我们的Spring的配置文件都是放在放在类路径下面 ...
- FUNCTION CALL STACK FRAME
function call stack frame 两个寄存器 esp 栈顶指针寄存器,指向调用栈的栈顶(始终指向,意味着栈分配到哪里了,从当前栈往高地址是已经分配了的) ebp 基址指针寄存器,指向 ...
- WebForm和MVC中都可以使用的路由
1.在global.asax void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 // RouteConfig. ...