-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
82 lines (73 loc) · 2.27 KB
/
Copy pathgulpfile.js
File metadata and controls
82 lines (73 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const path = require('path'),
gulp = require('gulp'),
gulpZip = require('gulp-zip'),
GulpSSH = require('gulp-ssh'),
sass = require('gulp-sass'),
autoPreFixer = require('gulp-autoprefixer'),
minifyCss = require('gulp-minify-css'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
concat = require('gulp-concat'),
notify = require('gulp-notify'),
header = require('gulp-header'),
cleanCSS = require('gulp-clean-css'),
config = require('./config.js')
//路径配置
const zipPath = __dirname
const srcPath = path.resolve(__dirname, 'src')
const distPath = path.resolve(__dirname, 'www/build')
const SSHObj = new GulpSSH({
ignoreErrors: false,
sshConfig: config.sshConfig
})
//解析sass
gulp.task('sass', function () {
return gulp.src([
srcPath + '/scss/main.scss'
])
.pipe(sass())
.on("error", notify.onError({
message: "Error: <%= error.message %>"
}))
.pipe(autoPreFixer('last 101 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest(distPath + "/css"))
.pipe(notify({ message: 'sass parse task complete' }))
})
//压缩css
gulp.task('mincss', ['sass'], function () {
return gulp.src([
distPath + '/css/main.css'
])
.pipe(cleanCSS({ compatibility: 'ie8' }))
// .pipe(rename("main.min.css"))
.pipe(header('/**\n * <%= file.relative %>\n * build at: <%= new Date() %>\n */\n'))
.pipe(gulp.dest(distPath + '/css/'))
.pipe(notify({ message: 'min css task complete' }))
})
//文件修改监听
gulp.task('watch', function () {
gulp.watch(srcPath + '/scss/**/*.scss', ['sass'])
gulp.watch(srcPath + '/css/*.css', ['mincss'])
})
//生产
gulp.task('build', ['sass', 'mincss'])
//同步到远程
gulp.task('zip', function () {
return gulp.src([
path.resolve(zipPath + '**/**.**'),
path.resolve(zipPath + '**/src/**/**'),
path.resolve(zipPath + '**/www/**/**'),
path.resolve(zipPath + '**/file/**/**')
])
.pipe(gulpZip('skeleton.zip'))
.pipe(gulp.dest('./zip/'))
})
gulp.task('write', ['zip'], function () {
return gulp.src('./zip/skeleton.zip')
.pipe(SSHObj.sftp('write', '/home/project/skeleton.zip'))
})
gulp.task('push', ['write'], function () {
return SSHObj
.shell(['cd /home/project', 'unzip -uo skeleton.zip', 'rm -fv skeleton.zip'], { filePath: 'skeleton.zip' })
.pipe(gulp.dest('logs'))
})