This repository was archived by the owner on Sep 17, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgulpfile.js
More file actions
102 lines (80 loc) · 3.56 KB
/
Copy pathgulpfile.js
File metadata and controls
102 lines (80 loc) · 3.56 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//----------------------------------------------------------------------------------------------------
// Gulp Sass & JavaScript Compiler
// https://github.com/jamiewade/gulp-sass-js
//----------------------------------------------------------------------------------------------------
//--------------------------------------------------
// Environment variables
//--------------------------------------------------
var env = require('./env.json');
destination = env.destination,
cssFileName = env.generatedCssFileName,
jsIncludeFile = env.jsIncludeFile,
jsFileName = env.generatedJsFileName,
jsFolder = env.jsFolder,
productionMode = env.productionMode,
sassIncludeFile = env.sassIncludeFile,
sassFolder = env.sassFolder;
//--------------------------------------------------
// Dependencies
//--------------------------------------------------
var gulp = require('gulp'),
autoprefixer = require('gulp-autoprefixer'),
cleanCSS = require('gulp-clean-css'),
color = require('gulp-color'),
concat = require('gulp-concat'),
gulpif = require('gulp-if'),
include = require('gulp-include'),
sass = require('gulp-sass'),
uglify = require('gulp-uglify');
// Only run the tasks if a destination folder has been defined
if (destination) {
//--------------------------------------------------
// Sass
//--------------------------------------------------
gulp.task('styles', function() {
if (sassIncludeFile) {
gulp.src(sassIncludeFile)
.pipe(sass().on('error', sass.logError))
.pipe(gulpif(productionMode == true, cleanCSS({compatibility: 'ie8'})))
.pipe(autoprefixer())
.pipe(concat(cssFileName + '.css'))
.pipe(gulp.dest(destination));
} else {
console.log(color('You need to specify which folder contains your Sass files. Check env.example.json for an example.', 'RED'));
process.exit();
}
});
//--------------------------------------------------
// JavaScript
//--------------------------------------------------
gulp.task('scripts', function() {
if (jsFolder) {
gulp.src(jsFolder + '*.js')
.pipe(include())
.pipe(concat(jsFileName + '.js'))
.pipe(gulpif(productionMode == true, uglify()))
.pipe(gulp.dest(destination))
} else {
console.log(color('You need to specify which folder contains your JavaScript files. Check env.example.json for an example.', 'RED'));
process.exit();
}
});
} else {
console.log(color('You need to specify the destination folder for your generated files. Check env.example.json for an example.', 'RED'));
process.exit();
}
//--------------------------------------------------
// Watch
//--------------------------------------------------
gulp.task('watch', function () {
gulp.watch(sassFolder + '/**/*.scss', ['styles']);
gulp.watch(jsFolder + '/**/*.js', ['scripts']);
});
//------------------------------------------------------------------------------------------------------
// gulp
//------------------------------------------------------------------------------------------------------
gulp.task('default',['styles', 'scripts', 'watch']);
//------------------------------------------------------------------------------------------------------
// gulp refresh
//------------------------------------------------------------------------------------------------------
gulp.task('refresh',['styles', 'scripts']);