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 相关文章推荐
jquery插件 autoComboBox 下拉框
Dec 22 Javascript
围观tangram js库
Dec 28 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
javascript计时器详解
Feb 28 Javascript
全面解析Bootstrap手风琴效果
Apr 17 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
Vue数据双向绑定的深入探究
Nov 27 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
Dec 04 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
php下保存远程图片到本地的办法
2010/08/08 PHP
分享PHP header函数使用教程
2013/09/05 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
Three.js快速入门教程
2016/09/09 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
Vue组件开发初探
2017/02/14 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python中运行并行任务技巧
2015/02/26 Python
详解Python中类的定义与使用
2017/04/11 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
如何用python处理excel表格
2020/06/09 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
党委班子对照检查材料
2014/08/19 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书