前端自动化工程构建node,npm,bower,gulp

创建项目目录

安装git,为了在命令行使用,把git配置到环境变量

安装node,windows可以下载安装包

安装bower

bower常用命令:bower init(初始化创建项目时用到),bower install,bower uninstall

bower配置文件:.bowerrc(路径配置文件,用于修改安装目录)、bower.json(用于管理第三方依赖)

全局安装:

npm i -g bower

到前面创建的项目目录下创建bower配置文件(相应内容根据自己需求填写):

bower init

局部安装angularjs到你的项目目录下

bower install --save angular

全局安装gulp:npm i -g install gulp

常用api:src(读取文件和文件夹),dest(生成文件或写文件),watch(监控文件),task(定制任务),pipe(以流的方式处理文件)

项目目录下安装gulp及gulp的其他插件

npm i --save-dev install gulp

gulp install gulp-cleangulp-concatgulp-connectgulp-cssmingulp-imagemingulp-lessgulp-load-pluginsgulp-plumbergulp-uglifylodashopen

安装好后开始编写gulp的配置文件

项目目录下创建gulpfile.js配置文件,用于执行gulp任务,注意:回调函数内不能有;分号,否则会出错,内容如下

var gulp = require('gulp'); //引入gulp模块
var $ = require('gulp-load-plugins')(); //引入此模块后之前安装的其他gulp模块就可以用$来引用,后面的()代表实例化
var open = require('open');


var app = { //用来定义目录路径
srcPath: 'src/',//源码目录
buildPath: 'build/',//开发目录
distPath: 'dist/',//生产部署的目录


}

//命令行下输入gulp lib即可以执行任务
gulp.task('lib',function(){ //task方法定义一个名为lib的任务
//任务内容
gulp.src('bower_components/**/*.js')//src读取文件目录下的文件,**/*代表对目录下的所有文件进行深度遍历并读取所有文件
.pipe(gulp.dest(app.buildPath + 'vendor'))//src读取文件后,用.pipe进行操作,dest把文件写到对应目录下
.pipe(gulp.dest(app.distPath + 'vendor'))//dest把文件写到对应目录下
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp html即可以执行任务
gulp.task('html',function(){ //task方法定义一个名为lib的任务
//任务内容
gulp.src(app.srcPath + '**/*.html')//src读取文件目录下的文件,**/*代表对目录下的所有文件进行深度遍历并读取所有文件
.pipe(gulp.dest(app.buildPath))//src读取文件后,用.pipe进行操作,dest把文件写到对应目录下
.pipe(gulp.dest(app.distPath))//dest把文件写到对应目录下
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp less即可以执行任务
gulp.task('less',function(){ //task方法定义一个名为less的任务
//任务内容
gulp.src(app.srcPath + 'css/style.less')//src读取文件目录下的文件
.pipe($.less())//通过$.调用插件方法,编译成css
.pipe(gulp.dest(app.buildPath + 'css'))//src读取文件后,用.pipe进行操作,dest把文件写到对应目录下
.pipe($.cssmin())//通过$.调用插件方法,压缩css
.pipe(gulp.dest(app.distPath + 'css'))//dest把文件写到对应目录下
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp js即可以执行任务
gulp.task('js',function(){
gulp.src(app.srcPath + 'js/**/*.js')//选择对应目录下的所有js文件
.pipe($.concat('common.js'))//合并成common.js
.pipe(gulp.dest(app.buildPath + 'js'))//写入到开发文件目录
.pipe($.uglify())//压缩js
.pipe(gulp.dest(app.distPath + 'js'))//写入到生产目录
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp img即可以执行任务
gulp.task('img',function(){
gulp.src(app.srcPath + 'images/**/*')//选择对应目录下的所有图片
.pipe(gulp.dest(app.buildPath + 'images'))//写入到开发文件目录
.pipe($.imagemin())//压缩图片
.pipe(gulp.dest(app.distPath + 'images'))//写入到生产目录
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp json即可以执行任务
gulp.task('json',function(){ //task方法定义一个名为lib的任务
//任务内容
gulp.src(app.srcPath + 'data/**/*.json')//src读取文件目录下的文件,**/*代表对目录下的所有文件进行深度遍历并读取所有文件
.pipe(gulp.dest(app.buildPath + 'data'))//src读取文件后,用.pipe进行操作,dest把文件写到对应目录下
.pipe(gulp.dest(app.distPath + 'data'))//dest把文件写到对应目录下
.pipe($.connect.reload())//改变后重新加载页面
})

//命令行下输入gulp clean即可以执行任务
gulp.task('clean',function(){
gulp.src([app.buildPath,app.distPath])//选择已打包的文件
.pipe($.clean())//执行清空
})

//一键打包任务
gulp.task('build',['lib','html','less','js','img','json']) //一键执行数组内的任务

//服务器搭建
gulp.task('server',['build'],function(){ //执行gulp server的时候会自动执行build任务,差自动打开浏览器查看页面
$.connect.server({//创建http服务器
root:[app.buildPath],//文件路径
livereload:true,//自动刷新
port:8888 //端口
})
open('http://localhost:8888')//自动打开浏览器

gulp.watch('bower_components/**/*',['lib'])//监制文件,下面全是
gulp.watch(app.srcPath + '**/*.html',['html'])
gulp.watch(app.srcPath + 'js/**/*.js',['js'])
gulp.watch(app.srcPath + 'css/**/*.less',['less'])
gulp.watch(app.srcPath + 'images/**/*',['img'])
gulp.watch(app.srcPath + 'data/**/*.json',['json'])
})


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值