-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
84 lines (69 loc) · 2.18 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
var fs = require('fs-extra');
var gulp = require('gulp');
var path = require('path');
var nopt = require('nopt');
var webserver = require('gulp-webserver');
var log = console['log'];
gulp.task('default', function() {
log('Usage:');
log(' gulp clean: clean all temporary files');
log(' gulp debug [--port=<number>]: start debug server (default port 8000)');
log(' gulp export: export the demo to dist');
});
gulp.task('copy_dependencies', function() {
var libDir = 'lib';
if (!fs.existsSync('lib')) { fs.mkdirSync('lib'); }
if (!fs.existsSync('lib/js')) { fs.mkdirSync('lib/js'); }
if (!fs.existsSync('lib/css')) { fs.mkdirSync('lib/css'); }
var jsFilesToCopy = [
'bower_components/bootstrap/dist/js/bootstrap.min.js',
'bower_components/jquery/dist/jquery.min.js',
'bower_components/ekko-lightbox/dist/ekko-lightbox.min.js',
'bower_components/holderjs/holder.js',
'bower_components/keen-js/dist/keen.js'
];
var cssFilesToCopy = [
'bower_components/bootstrap/dist/css/bootstrap.min.css',
'bower_components/ekko-lightbox/dist/ekko-lightbox.min.css'
];
var copy = function(file, dir) {
fs.copySync(file, path.join(dir, path.basename(file)));
};
cssFilesToCopy.forEach(function(file) {copy(file, libDir + '/css')});
jsFilesToCopy.forEach(function(file) {copy(file, libDir + '/js')});
});
gulp.task('clean', function() {
var foldersToDelete = [
'lib'
];
foldersToDelete.forEach(function(folder) {
if (fs.existsSync(folder)) {
fs.removeSync(folder);
}
});
});
gulp.task('debug', ['copy_dependencies'], function() {
var knownOps = {
'port': [Number, null]
};
var portNumber = nopt(knownOps).port || 8000;
gulp.src('.').pipe(webserver({
livereload: true,
directoryListing: true,
open: false,
port: portNumber
}));
});
gulp.task('export', ['copy_dependencies'], function() {
var distDir = 'dist';
if (!fs.existsSync(distDir)) { fs.mkdirSync(distDir); }
fs.copySync('lib', path.join(distDir, 'lib'));
var filesToCopy = [
'index.html',
'assets'
];
var copyFile = function(file) {
fs.copySync(file, path.join(distDir, path.basename(file)));
};
filesToCopy.forEach(copyFile);
});