|
|
/**
|
|
|
* GULP ENTRY
|
|
|
* author: xuqi(qi.xu@yoho.cn)
|
|
|
* date: 2015/6/29
|
|
|
*/
|
|
|
|
|
|
var gulp = require('gulp'),
|
|
|
fs = require('fs'),
|
|
|
ftp = require('gulp-ftp'),
|
|
|
gutil = require('gulp-util'),
|
|
|
concat = require('gulp-concat'),
|
|
|
compass = require('gulp-compass'),
|
|
|
exec = require('child_process').exec,
|
|
|
uglify = require('gulp-uglify'),
|
|
|
Package = require('father').SpmPackage,
|
|
|
transport = require('gulp-spm'),
|
|
|
concat = require('gulp-concat'),
|
|
|
uglify = require('gulp-uglify'),
|
|
|
server = require('gulp-develop-server');
|
|
|
|
|
|
var config = JSON.parse(fs.readFileSync('./package.json').toString());
|
|
|
var assets_dir = 'dist/yoho-mobile/' + config.name + '/assets';
|
|
|
var dist_dir = {
|
|
|
js: 'dist/yoho-mobile/' + config.name + '/' + config.version,
|
|
|
css: 'dist/yoho-mobile/' + config.name + '/' + config.version,
|
|
|
image: assets_dir + '/images',
|
|
|
font: assets_dir + '/fonts'
|
|
|
};
|
|
|
|
|
|
var config = JSON.parse(fs.readFileSync('./package.json').toString()),
|
|
|
distDir = {
|
|
|
js: 'dist/yohobuy-mobile/' + config.name + '/' + config.version,
|
|
|
css: 'dist/yohobuy-mobile/' + config.name + '/' + config.version,
|
|
|
image: 'dist/yohobuy-mobile/' + config.name + '/assets/images',
|
|
|
fonts: 'dist/yohobuy-mobile/' + config.name + '/assets/fonts'
|
|
|
}
|
|
|
var ftpConfig = {
|
|
|
host: '218.94.75.58',
|
|
|
user: 'php',
|
|
|
pass: 'yoho9646'
|
|
|
};
|
|
|
|
|
|
// 本地运行时
|
|
|
// 启动
|
|
|
gulp.task('default', ['server', 'server:restart', 'compass-watch', 'compass']);
|
|
|
|
|
|
// start express server
|
...
|
...
|
@@ -32,15 +38,17 @@ gulp.task('server', function() { |
|
|
|
|
|
// restart server if app.js changed
|
|
|
gulp.task('server:restart', function() {
|
|
|
gulp.watch(['app.js', 'views/controller/*.js', 'public/js/data.js'], server.restart);
|
|
|
gulp.watch([
|
|
|
'app.js', 'views/**/*.html', 'views/controller/*.js',
|
|
|
'layouts/*.html', 'public/css/*.css', 'public/js/data.js'
|
|
|
], server.restart);
|
|
|
});
|
|
|
|
|
|
// compass watch
|
|
|
//compass 解析压缩合并
|
|
|
gulp.task('compass-watch', function() {
|
|
|
gulp.watch('public/sass/**/*.scss', ['compass']);
|
|
|
});
|
|
|
|
|
|
//compass
|
|
|
gulp.task('compass', function() {
|
|
|
gulp.src('public/sass/**/*.scss')
|
|
|
.pipe(
|
...
|
...
|
@@ -52,23 +60,32 @@ gulp.task('compass', function() { |
|
|
)
|
|
|
});
|
|
|
|
|
|
//发布
|
|
|
//发布到CND
|
|
|
gulp.task('dist', function() {
|
|
|
var ftpstream = ftp(ftpConfig);
|
|
|
return gulp.src('dist/**/')
|
|
|
.pipe(ftpstream)
|
|
|
.pipe(gutil.noop());
|
|
|
});
|
|
|
|
|
|
//STEP1:拷贝fonts+images到发布目录
|
|
|
gulp.task('assets', function() {
|
|
|
gulp.src('public/img/**')
|
|
|
.pipe(gulp.dest(distDir.image));
|
|
|
.pipe(gulp.dest(dist_dir.image));
|
|
|
gulp.src('public/fonts/*')
|
|
|
.pipe(gulp.dest(distDir.fonts));
|
|
|
.pipe(gulp.dest(dist_dir.font));
|
|
|
});
|
|
|
|
|
|
//STEP2:compass整合所有css到index后发布到发布目录
|
|
|
gulp.task('compass-production', function() {
|
|
|
gulp.src('public/sass/*.scss')
|
|
|
gulp.src('public/sass/index.scss')
|
|
|
.pipe(
|
|
|
compass({
|
|
|
css: distDir.css,
|
|
|
css: dist_dir.css,
|
|
|
sass: 'public/sass',
|
|
|
image: distDir.image,
|
|
|
font: distDir.fonts,
|
|
|
image: dist_dir.image,
|
|
|
font: dist_dir.font,
|
|
|
http_path: '/',
|
|
|
style: 'compressed'
|
|
|
})
|
...
|
...
|
@@ -79,7 +96,6 @@ gulp.task('compass-production', function() { |
|
|
});
|
|
|
});
|
|
|
|
|
|
|
|
|
//STEP3: build
|
|
|
gulp.task('build', function() {
|
|
|
var pkg = new Package(__dirname);
|
...
|
...
|
@@ -88,8 +104,8 @@ gulp.task('build', function() { |
|
|
pkg: pkg
|
|
|
}))
|
|
|
.pipe(concat('index-debug.js'))
|
|
|
.pipe(gulp.dest(distDir.js))
|
|
|
.pipe(gulp.dest(dist_dir.js))
|
|
|
.pipe(uglify())
|
|
|
.pipe(concat('index.js'))
|
|
|
.pipe(gulp.dest(distDir.js));
|
|
|
.pipe(gulp.dest(dist_dir.js));
|
|
|
}); |
|
|
\ No newline at end of file |
...
|
...
|
|