-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
67 lines (58 loc) · 1.85 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
/**************** 환경설정 ****************/
// 모듈
const { src, dest, task, watch, series, parallel } = require('gulp');
const del = require('del');
const options = require('./package.json').options;
const browserSync = require('browser-sync').create();
const gutil = require('gulp-util');
const jshint = require('gulp-jshint');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const stripDebug = require('gulp-strip-debug');
const plumber = require('gulp-plumber');
const rename = require('gulp-rename');
const sourcemaps = require('gulp-sourcemaps');
task('livepreview', (done) => {
browserSync.init({
port: 8024,
server: { baseDir: "./"},
ghostMode: { clicks: false, scroll: false }
});
done();
});
function previewReload(done) {
console.log("\n\t" + logSymbols.info, "Reloading Preview.\n");
browserSync.reload();
done();
}
// Error
const onError = (error) => {
console.log([error.message, error.plugin]);
};
const plumberOption = {
errorHandler: onError
};
task('scripts', (done) => {
return src(options.paths.uncompressed)
.pipe(plumber(plumberOption))
.pipe(sourcemaps.init({ loadMaps: true, debug: true }))
.pipe(jshint())
.pipe(uglify({ mangle: { toplevel: true } }))
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
.pipe(rename({
dirname: "",
suffix: ".min"
}))
.pipe(sourcemaps.write('./maps/js'))
.pipe(dest(options.paths.minified))
done();
});
task('watch-changes', (done) => {
watch(options.paths.uncompressed + '/**/*.js', series('scripts', previewReload));
done();
});
task('development', series('scripts'), (done) => {
console.log("\n\t" + logSymbols.info, "npm run dev is complete. Files are located at ./dist\n");
done();
});
exports.default = series('development', 'livepreview', 'watch-changes');