angular1配合gulp和bower的使用教程


Posted in Javascript onJanuary 19, 2018

一 安装gulp和bower

gulp安装: npm install -g gulp
bower安装: npm install -g bower
==注:== angularjs的一些包文件我们是通过bower来管理的

二 bower使用

  1. 使用bower初始化一个项目: bower init
  2. 填写工程名,描述等等那些东西
  3. 安装angularjs:bower install --save angular
  4. 创建.bowerrc文件(注意window最好用命令行创建)

三 自动化工具gulp的使用

  1. 初始化文件:npm init(一直回车下去就可以)
  2. 在项目里面安装gulp:npm i --save-dev gulp
  3. 安装gulp的依赖插件(只介绍项目中用到的)gulp-clean,gulp-concat,gulp-connect,gulp-cssmin,gulp-imagemin,gulp-less,gulp-load-plugins,gulp-uglif,open(可以和上面安装gulp一样安装)
  4. 创建gulpfile.js来编写gulp的配置
// 依赖
var gulp = require('gulp');
// 进行实例化(gulp-load-plugins这个模块后面可以通过$来操作)
var $ = require('gulp-load-plugins')();
// open模块
var open = require('open');
var app = {
 srcPath: 'src/', //源代码路径
 devPath: 'build/', //整合后的路径,开发路径
 prdPath: 'dist/' //生产环境路径
};
// 创建任务
gulp.task('lib', function () {
 gulp.src('bower_components/**/*.js')
 .pipe(gulp.dest(app.devPath + 'vendor'))
 .pipe(gulp.dest(app.prdPath + 'vendor'))
 .pipe($.connect.reload());
});
/*
* html任务
* 创建目录src,在src下创建index.html
* 创建视图模版目录view,在其中存放视图view的模版
*/
gulp.task('html', function () {
 gulp.src(app.srcPath + '**/*.html')
 .pipe(gulp.dest(app.devPath))
 .pipe(gulp.dest(app.prdPath))
 .pipe($.connect.reload());
});
/*
* json任务
*/
gulp.task('json', function () {
 gulp.src(app.srcPath + 'data/**/*.json')
 .pipe(gulp.dest(app.devPath + 'data'))
 .pipe(gulp.dest(app.prdPath + 'data'))
 .pipe($.connect.reload());
});
/*
* css任务
* 在src下创建style文件夹,里面存放less文件。 
*/
gulp.task('less',function () {
 gulp.src(app.srcPath + 'style/index.less')
 .pipe($.less())
 .pipe(gulp.dest(app.devPath + 'css'))
 .pipe($.cssmin())
 .pipe(gulp.dest(app.prdPath + 'css'))
 .pipe($.connect.reload());
});
/*
* js任务
* 在src目录下创建script文件夹,里面存放所有的js文件
*/
gulp.task('js', function () {
 gulp.src(app.srcPath + 'script/**/*.js')
 .pipe($.concat('index.js'))
 .pipe(gulp.dest(app.devPath + 'js'))
 .pipe($.uglify())
 .pipe(gulp.dest(app.prdPath + 'js'))
 .pipe($.connect.reload());
});
/*
* image任务
* 
*/
gulp.task('image', function () {
 gulp.src(app.srcPath + 'image/**/*')
 .pipe(gulp.dest(app.devPath + 'image'))
 .pipe($.imagemin()) // 压缩图片
 .pipe(gulp.dest(app.prdPath + 'image'))
 .pipe($.connect.reload());
});
// 每次发布的时候,可能需要把之前目录内的内容清除,避免旧的文件对新的容有所影响。 需要在每次发布前删除dist和build目录
gulp.task('clean', function () {
 gulp.src([app.devPath, app.prdPath])
 .pipe($.clean());
});
// 总任务
gulp.task('build', ['image', 'js', 'less', 'lib', 'html', 'json']);
// 服务
gulp.task('serve', ['build'], function () {
 $.connect.server({ //启动一个服务器
 root: [app.devPath], // 服务器从哪个路径开始读取,默认从开发路径读取
 livereload: true, // 自动刷新
 port: 1234
 });
 // 打开浏览器
 open('http://localhost:1234');
 // 监听
 gulp.watch('bower_components/**/*', ['lib']);
 gulp.watch(app.srcPath + '**/*.html', ['html']);
 gulp.watch(app.srcPath + 'data/**/*.json', ['json']);
 gulp.watch(app.srcPath + 'style/**/*.less', ['less']);
 gulp.watch(app.srcPath + 'script/**/*.js', ['js']);
 gulp.watch(app.srcPath + 'image/**/*', ['image']);
});
// 定义default任务
gulp.task('default', ['serve']);

总结

以上所述是小编给大家介绍的angular1配合gulp和bower的使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
jQuery+jRange实现滑动选取数值范围特效
Mar 14 Javascript
JavaScript实现数字数组按照倒序排列的方法
Apr 06 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
在HTML中插入JavaScript代码的示例
Jun 03 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
jQuery双向列表选择器DIV模拟版
Nov 01 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
vue自动化路由的实现代码
Sep 30 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 Javascript
Promise静态四兄弟实现示例详解
Jul 07 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 #Javascript
Angular实现搜索框及价格上下限功能
Jan 19 #Javascript
vue 插值 v-once,v-text, v-html详解
Jan 19 #Javascript
web前端vue实现插值文本和输出原始html
Jan 19 #Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 #Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 #jQuery
解决js ajax同步请求造成浏览器假死的问题
Jan 18 #Javascript
You might like
jquery 防止表单重复提交代码
2010/01/21 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
python中的for循环
2018/09/28 Python
详解python做UI界面的方法
2019/02/27 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
python中sys模块是做什么用的
2020/08/16 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
顶撞老师检讨书
2014/02/07 职场文书
警示教育活动总结
2014/05/05 职场文书
中职招生先进个人材料
2014/08/31 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
交警失职检讨书
2015/01/26 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
借款民事起诉状范文
2015/05/19 职场文书
table不让td文字溢出操作方法
2022/12/24 HTML / CSS