-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathgulpfile.js
More file actions
88 lines (82 loc) · 2.17 KB
/
gulpfile.js
File metadata and controls
88 lines (82 loc) · 2.17 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
83
84
85
86
87
88
/**
* gulp sass
* gulp script
* gulp test
* gulp watch
asset/
docs/
*/
//DEFAULT
var path=require('path'),Argv=require('minimist')(process.argv);
//COMMON PACKAGE
var fs=require('fs-extra'),clc=require('cli-color'),extend=require('node.extend');
//REQUIRE PACKAGE
var gulp=require('gulp'),sass=require('gulp-sass'),minifyCss=require('gulp-clean-css'),
uglify=require('gulp-uglify'),concat=require('gulp-concat'),include=require('gulp-include');
// REQUIRE DATA
var Package=JSON.parse(fs.readFileSync('package.json'));
// GULP
var configAssetRoot=Package.config.common.asset.root;
var configPublicRoot=Package.config.common.public.root;
var rootAsset=path.join(configAssetRoot);
var rootPublic=path.join(configPublicRoot);
var style = {
normal:{
sass:{
debugInfo: false,
lineNumbers: true,
errLogToConsole: true,
outputStyle: 'nested' //compact, expanded, nested, compressed,
},
js:{
//mangle:false,
output:{
beautify: true,
comments:'license'
},
compress:false
//outSourceMap: true
}
},
compressed:{
sass:{
debugInfo: true,
lineNumbers: false,
errLogToConsole: true,
outputStyle: 'compressed'
},
js:{
mangle:true,
output:{
}
}
},
};
var codeStyle = Argv.style;
if (codeStyle && style[codeStyle]) {
codeStyle = style[codeStyle];
} else {
codeStyle=style.compressed;
}
// NOTE: SASS
gulp.task('sass', function () {
return gulp
.src(path.join(rootAsset,'sass','*([^A-Z0-9-]).scss'))//!([^A-Z0-9-])
.pipe(sass(codeStyle.sass).on('error', sass.logError))
.pipe(gulp.dest(path.join(rootPublic,'css')));
});
// NOTE: SCRIPT
gulp.task('script',function(){
gulp.src(path.join(rootAsset,'javascript','*([^A-Z0-9-]).js'))
//.pipe(concat('all.min.js'))
.pipe(include().on('error', console.log))
.pipe(uglify(codeStyle.js).on('error', console.log))
.pipe(gulp.dest(path.join(rootPublic,'js')));
});
// NOTE: WATCH
gulp.task('watch', function() {
gulp.watch(path.join(rootAsset,'sass','*.scss'), ['sass']);
gulp.watch(path.join(rootAsset,'javascript','*.js'), ['script']);
});
// NOTE: TASK
gulp.task('default', ['watch']);