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 相关文章推荐
Javascript 代码也可以变得优美的实现方法
Jun 22 Javascript
理解Javascript_13_执行模型详解
Oct 20 Javascript
JavaScript学习笔记(二) js对象
Oct 25 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
Apr 02 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
js实现人才网站职位选择功能的方法
Aug 14 Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
JS高级技巧(简洁版)
Jul 29 Javascript
详解ES6 CLASS在微信小程序中的应用实例
Apr 24 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
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
IE无法设置短域名下Cookie
2010/09/23 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
python类和继承用法实例
2015/07/07 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Django 返回json数据的实现示例
2020/03/05 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
学习python需要有编程基础吗
2020/06/02 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
小学教师办公室制度
2014/02/03 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
销售内勤岗位职责
2015/02/10 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏