##Gulp后端构建
1、清空目录
- del
2、文件复制
- 原生效果达到(gulp.src,gulp.dest)
3、启动node服务
- gulp-nodemon
- gulp-develop-server
4、监视
- 原生效果达到(gulp.watch)
5、其他
- yargs 区分不同环境,参数获取方式
- gulp-notify 桌面通知
- gulp-util 日志等通用方法
- run-sequence 控制程序异步还是同步(参数组间都是同步,数组中的为异步)
##代码
gulpfile.js
```
(function() {
var del, developServer, gulp, notify, runSequence;
gulp = require('gulp');
del = require('del');
runSequence = require('run-sequence');
developServer = require('gulp-develop-server');
notify = require('gulp-notify');
gulp.task('default', function(callback) {
return runSequence(['clean'], ['copyFiles'], ['serve', 'watch'], callback);
});
gulp.task('clean', function(callback) {
return del('./dist/', callback);
});
gulp.task('copyFiles', function() {
return gulp.src('./src/**/*.js').pipe(gulp.dest('./dist/'));
});
gulp.task('serve', function() {
return developServer.listen({
path: './dist/index.js'
});
});
gulp.task('watch', function() {
return gulp.watch('./src/**/*.js', ['reload']);
});
gulp.task('reload', function(callback) {
return runSequence(['copyFiles'], ['reload-node'], callback);
});
gulp.task('reload-node', function() {
developServer.restart();
return gulp.src('./dist/index.js').pipe(notify('Server restarted ...'));
});
}).call(this);
```
index.js
```
(function() {
var app, config, http, onError, onListening, port, server;
app = require('./libs/app');
config = require('./config/config');
http = require('http');
port = config.port;
server = http.createServer(app);
onError = function(error) {
var bind, ref;
if (error.syscall !== 'listen') {
throw error;
}
bind = (ref = typeof port === 'string') != null ? ref : 'Pipe ' + {
port: 'Port ' + port
};
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
return process.exit(1);
case 'EADDRINUSE':
console.error(bind + ' is already in use');
return process.exit(1);
default:
throw error;
}
};
onListening = function() {
var addr, bind, ref;
addr = address();
bind = (ref = typeof addr === 'string') != null ? ref : 'pipe ' + {
addr: 'port ' + addr.port
};
return debug('Listening on ' + bind);
};
server.on('error', onError);
server.listen(port, function() {
return console.log('Started...');
});
}).call(this);
```
config/config.js
```
(function() {
module.exports = {
port: 7410
};
}).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
