##Gulp实现前端构建
1、清空目录
- gulp-clean
- del
2、文件复制
- gulp-copy
- 原生效果达到(gulp.src,gulp.dest)
3、JS压缩
- gulp-uglify
4、CSS压缩
- gulp-minify-css
- gulp-uncss(去除多余的css)
5、文件合并
- gulp-concat
6、启动浏览器
- gulp-open
- browser-sync
7、监视
- gulp-watch
- 原生效果达到(gulp.watch)
8、其他
- yargs 区分不同环境,参数获取方式
- gulp-notify 桌面通知
- gulp-util 日志等通用方法
- run-sequence 控制程序异步还是同步(参数组间都是同步,数组中的为异步)
##安装
```
$ npm install xxx --save-dev
```
##代码
gulpfile.js
```js
(function() {
var browserSync, del, gulp, minifyCss, runSequence, uglify;
gulp = require('gulp');
runSequence = require('run-sequence');
//删除目录
del = require('del');
//JS压缩
uglify = require('gulp-uglify');
//css压缩
minifyCss = require('gulp-minify-css');
//启动浏览器
browserSync = require('browser-sync').create();
gulp.task('default', function(callback) {
return runSequence(['clean'], ['build'], ['serve', 'watch'], callback);
});
//删除目录任务
gulp.task('clean', function(callback) {
return del(['./dist/'], callback);
});
//构建任务,同一数组中异步执行
gulp.task('build', function(callback) {
return runSequence(['copy', 'miniJs', 'miniCss'], callback);
});
//拷贝任务
gulp.task('copy', function() {
return gulp.src('./src/**/*.*').pipe(gulp.dest('./dist/'));
});
//压缩js任务
gulp.task('miniJs', function() {
return gulp.src('./src/**/*.js').pipe(uglify()).pipe(gulp.dest('./dist/'));
});
//压缩css任务
gulp.task('miniCss', function() {
return gulp.src('./src/**/*.css').pipe(minifyCss()).pipe(gulp.dest('./dist/'));
});
//文件合并任务
gulp.task('concat', function() {
return gulp.src('./src/*.js').pipe(concat('all.js', {
newLine: ';\n'
})).pipe(gulp.dest('./dist/'));
});
//启动浏览器任务
gulp.task('serve', function() {
return browserSync.init({
server: {
baseDir: './dist/'
},
port: 7411
});
});
//监控任务,当目录下文件有变化,执行reload任务
gulp.task('watch', function() {
return gulp.watch('./src/**/*.*', ['reload']);
});
//加载任务,重启浏览器任务
gulp.task('reload', function(callback) {
return runSequence(['build'], ['reload-browser'], callback);
});
//浏览器加重启任务
gulp.task('reload-browser', function() {
return browserSync.reload();
});
}).call(this);
```
- 简介
- 配置安装
- window
- 基础知识
- Node 命令基本用法
- 进程和线程
- 调试
- 异步、回调
- 全局对象
- 非阻塞 I/O和事件驱动和非阻塞机制
- npm包概念
- 模块化
- 实现require和cache
- 核心模块操作
- fs文件系统操作
- 同步调用和异步调用
- 缓冲区处理(二进制数据)
- 文件读取
- 文件写入
- 例子:读取歌词文件显示
- 文件流
- 例子:文件复制
- 监视文件
- 其他文件操作
- 目录操作
- 例子:递归加载目录树
- path路径操作模块
- 网络操作
- URL 解析模块
- querystring查询字符串模块
- crypto加密解密模块
- Socket
- 例子:聊天室
- coffeescript
- Gulp-自动化构建工具
- Gulp实现前端构建
- Gulp后端构建
- 插件
- gulp-load-plugins 模块化管理插件
- gulp-minify-css 压缩css插件
- gulp-sass 将sass预处理为css
- gulp-less 将less预处理为css
- gulp-sourcemaps 插件
- gulp-concat 合并插件
- gulp-uglify 压缩JS插件
- gulp-util gulp常用工具库插件
- yargs插件
- gulp-nodemon 自动启动/重启插件
- coffee-script 插件
- gulp-coffee插件
- gulp-livereload 网页自动刷新
- Moment.js-处理时间插件
- express 前端框架
- Async-异步流程控制插件
- node-progress进度条插件
- JSHint-代码规范检查工具
- lodash -JavaScript 工具库
- 资料
- 框架所用包
- bodyParser
