-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgulpfile.js
127 lines (106 loc) · 3.5 KB
/
gulpfile.js
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
"use strict";
var gulp = require("gulp");
var sass = require("gulp-sass");
var runSequence= require('run-sequence'); // 运行组件,原生为run,多任务并行或顺序
var rename = require('gulp-rename'); // 重命名
var clean = require('gulp-clean'); // 清空文件夹
var cleanCSS = require('gulp-clean-css'); // css压缩
var uglify = require('gulp-uglify'); // js压缩
//定义路径
var paths = {
// js:['./src/static/js/**'],
// css:['./src/static/css/*'],
// libs:['./src/static/js/libs/**'],
// img:['./src/static/img/*'],
staticFile: ['./src/static/**','!./src/static/js/config.js'],
template:['./src/template/**'],
appvue:['./app/dist/**','!./app/dist/static/config.js'],
//分环境移动配置文件
devConfig:['./src/config/config_dev.js'],
testConfig:['./src/config/config_test.js'],
preConfig:['./src/config/config_pre.js'],
proConfig:['./src/config/config_pro.js']
};
gulp.task("sass", function() {
return gulp.src('./src/sass/**/*.scss')
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(gulp.dest('./src/static/css'));
});
gulp.task("sass-vue", function() {
return gulp.src('./app/src/assets/sass/*.scss')
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(gulp.dest('./app/src/assets/css'));
});
// move
gulp.task('buildMov', function () {
gulp.src(paths.staticFile)
.pipe(gulp.dest('./dist/static/'));
gulp.src(paths.template)
.pipe(gulp.dest('./dist/template/'));
gulp.src(paths.appvue)
.pipe(gulp.dest('./dist/appv/'));
});
/**
* dev pro test
* **/
//多环境文件移动
gulp.task('devDist', function () {
gulp.src(paths.devConfig)
.pipe(rename('config.js'))
.pipe(gulp.dest('./dist/static/js'))
.pipe(gulp.dest('./dist/appv/static'));
});
gulp.task('testDist', function () {
gulp.src(paths.testConfig)
.pipe(rename('config.js'))
.pipe(gulp.dest('./dist/static/js'))
.pipe(gulp.dest('./dist/appv/static'));
});
gulp.task('preDist', function () {
gulp.src(paths.preConfig)
.pipe(rename('config.js'))
.pipe(gulp.dest('./dist/static/js'))
.pipe(gulp.dest('./dist/appv/static'));
});
gulp.task('productDist', function () {
gulp.src(paths.proConfig)
.pipe(rename('config.js'))
.pipe(gulp.dest('./dist/static/js'))
.pipe(gulp.dest('./dist/appv/static'));
});
// clean
gulp.task('clean', function() {
return gulp.src(['./dist/'], {read: false})
.pipe(clean({force: true}));
});
// 压缩
gulp.task('minifycss', function() {
return gulp.src('./src/static/css/**/*.css') //压缩的文件
.pipe(cleanCSS())
.pipe(gulp.dest('./dist/static/css')); // 输出文件夹
});
//==========================================================
//终端gulp watch,动态实时监控早期项目
gulp.task('watch', function() {
gulp.watch('./src/sass/**/*.scss', ['sass']);
});
//终端gulp vue-watch,动态实时监控VUE 项目
gulp.task('vue-watch', function() {
gulp.watch('./app/src/assets/sass/*.scss', ['sass-vue']);
});
// run dev (dev)
gulp.task('dev', ['clean'], function() {
runSequence('buildMov','devDist')
});
// run test
gulp.task('test',['clean'], function() {
runSequence('buildMov','testDist')
});
// run pre
gulp.task('pre', function() {
runSequence('buildMov','preDist')
});
// run pro
gulp.task('pro', function() {
runSequence('buildMov','productDist');//中括号为并行执行
});