gulp介绍

基于流的前端自动化构建工具,利用gulp可以提高前端开发效率,特别是在前后端分离的项目中。使用gulp能完成以下任务:
目标
工具
实现过程
1、一键安装项目所有的依赖模块
创建项目使用命令(项目目录下)
npm init
//生成package.json
{
"name": "leason",
"version": "1.0.0",
"description": "test for angular and gulp and unit testing",
"main": "gulpfile.js",
"dependencies": {
},
"devDependencies": {
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
},
"keywords": [
"leason"
],
"author": "leason",
"license": "ISC",
"bugs": {
},
}
npm安装依赖模块采用命令
npm install xxx --save //保存到dependencies(生产) npm install xxx --save-dev //保存到devDependencies(开发)
package.json中保存相应模块,项目重新部署只需要命令
npm install //安装package中所有模块
一键安装项目所有的依赖模块使用bower管理器,用法和npm类似
2、语法检查
npm install gulp-jshint --save-dev
//代码语法检查命令--gulp jshint
var jshint = require('gulp-jshint'); //代码检查
gulp.task('jshint', function () {
return gulp.src(paths.js)
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
转换html为js模块
npm install gulp-angular-templatecache --save-dev
//合并html模板命令--gulp template
var templateCache = require('gulp-angular-templatecache');
gulp.task('template', function () {
return gulp.src(['./templates/**/*.html','./templates/*.html'])
.pipe(templateCache({module: 'templates'}))
.pipe(gulp.dest('./js'))
});
3、将所有css文件合并压缩
npm install gulp-cssmin --save-dev
//合并压缩css命令--gulp deployCSS
var cssmin = require('gulp-cssmin');
gulp.task('deployCSS', function() {
return gulp.src(paths.css)
.pipe(cssmin())
.pipe(concat('all.css'))
.pipe(gulp.dest('./build'));
});
4、将所有js文件合并压缩
npm install gulp-uglify --save-dev //压缩 npm install gulp-concat --save-dev //合并 npm install gulp-sourcemapsy --save-dev //处理 JavaScript 时生成 SourceMap npm install gulp-strip-debug --save-dev //去除打印
//测试生产两种js压缩命令--生产gulp js --prod测试gulp js --dev
gulp.task('js', function(type) {
console.log(type);
if (type == 'dev') { // dev
return gulp.src(paths.js)
.pipe(concat('all.js'))
.pipe(gulp.dest('./build'));
} else { // prod
return gulp.src(paths.js)
.pipe(sourcemaps.init())
.pipe(stripDebug())
.pipe(uglify())
.pipe(concat('all.min.js'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('./build'));
}
});
5、根据现有文件想index中引入
npm install gulp-inject --save-dev
index.html中标识写入的位置如:
<!doctype html> <html> <head> <meta charset="utf-8"> <title ng-bind="headTitle"></title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <!-- bower:css --> <!-- endinject --> <!-- inject:css --> <link rel="stylesheet" href="build/all.css" rel="external nofollow" > <!-- endinject --> <!-- bower:js --> <!-- endinject --> <!-- inject:js --> <script src="build/all.min.js"></script> <!-- endinject --> </head> <body ng-app="starter"> <div ui-view></div> </body> </html>
开发环境
//dev资源引用命令--gulp devIndex
gulp.task('devIndex', ['clean', 'jshint'], function () {
// It's not necessary to read the files (will speed up things), we're only after their paths:
return gulp.src('./index.html')
.pipe(inject(gulp.src(paths.js, {read: false}), {relative: true}))
.pipe(inject(gulp.src(paths.css, {read: false}), {relative: true}))
// .pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true}))
.pipe(gulp.dest('./'));
});
生产环境
//生产环境资源引用命令--gulp deployIndex
gulp.task('deployIndex', ['clean', 'jshint', 'template', 'js', 'deployCSS'], function () {
// It's not necessary to read the files (will speed up things), we're only after their paths:
return gulp.src('./index.html')
.pipe(inject(gulp.src(paths.buildjs, {read: false}), {relative: true}))
.pipe(inject(gulp.src(paths.buildcss, {read: false}), {relative: true}))
// .pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true}))
.pipe(gulp.dest('./'));
});
注意点
代码混淆过会使angular的依赖注入无法识别,所以代码编写的过程中要使用严格依赖的写法。如
angularApp.config(['$routeProvider','$stateProvider','$urlRouterProvider',function($routeProvider,$stateProvider,$urlRouterProvider) {
$stateProvider
.state('sidebar', {
url: '/sidebar',
// abstract: true,
templateUrl: 'templates/sidebar.html',
controller: 'sidebarCtrl'
})
$urlRouterProvider.otherwise('/sidebar/tab1');
}]);
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# gulp构建angularjs
# gulp
# 打包angularjs
# angularjs
# 压缩
# JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
# JavaScript 常见安全漏洞和自动化检测技术
# 使用auto.js实现自动化每日打卡功能
# PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
# nodejs前端自动化构建环境的搭建
# Angular.Js的自动化测试详解
# 从零搭建docker+jenkins+node.js自动化部署环境的方法
# Angular.js自动化测试之protractor详解
# python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
# JavaScript揭秘:实现自动化连连看游戏
# 一键
# 管理器
# 文件合并
# 两种
# 是在
# 只需要
# 会使
# 这篇文章
# 能将
# 谢谢大家
# 中要
# 后端
# 无法识别
# 目录下
# 有疑问
# bash
# install
# ISC
# bugs
# dev
相关文章:
网站制作公司排行榜,四大门户网站排名?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
济南专业网站制作公司,济南信息工程学校怎么样?
如何快速搭建高效可靠的建站解决方案?
建站主机功能解析:服务器选择与快速搭建指南
宝塔建站助手安装配置与建站模板使用全流程解析
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何用AWS免费套餐快速搭建高效网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
制作网站的基本流程,设计网站的软件是什么?
电商平台网站制作流程,电商网站如何制作?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
定制建站价位费用解析与套餐推荐全攻略
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何快速搭建二级域名独立网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
广东企业建站网站优化与SEO营销核心策略指南
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
建站中国官网:模板定制+SEO优化+建站流程一站式指南
Android自定义listview布局实现上拉加载下拉刷新功能
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何快速搭建高效WAP手机网站吸引移动用户?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何在万网开始建站?分步指南解析
电商网站制作公司有哪些,1688网是什么意思?
如何在IIS中配置站点IP、端口及主机头?
如何登录建站主机?访问步骤全解析
建站之星免费模板:自助建站系统与智能响应式一键生成
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站主机服务器选购指南:轻量应用与VPS配置解析
建站之星安装后如何配置SEO及设计样式?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何在IIS服务器上快速部署高效网站?
深圳网站制作案例,网页的相关名词有哪些?
家庭服务器如何搭建个人网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
大连 网站制作,大连天途有线官网?
黑客如何通过漏洞一步步攻陷网站服务器?
jQuery 常见小例汇总
制作表格网站有哪些,线上表格怎么弄?
用v-html解决Vue.js渲染中html标签不被解析的问题
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
山东网站制作公司有哪些,山东大源集团官网?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。