-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
42 lines (36 loc) · 1.26 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
// Include gulp
const gulp = require('gulp');
var argv = require('yargs').argv;
var plugins = require('gulp-load-plugins')();
var isProduction = (argv.production !== undefined);
var paths = {
entryScript: 'static/app/index.js',
sassEntryScript: 'static/css/app.scss',
dest: 'static/assets'
};
// Concatenate & Minify APP JS
gulp.task('scripts', function () {
var pipe = gulp.src(paths.entryScript)
.pipe(plugins.resolveDependencies({
pattern: /\* @require [\s-]*(.*?\.js)/g
}));
if (isProduction) pipe.pipe(plugins.uglify());
return pipe.pipe(plugins.concat('app.bundle.js'))
.pipe(gulp.dest(paths.dest));
});
// Concatenate & Minify Vendor JS
gulp.task('vendor-scripts', function () {
var pipe = gulp.src(paths.entryScript)
.pipe(plugins.resolveDependencies({
pattern: /\* @require-vendor [\s-]*(.*?\.js)/g
}));
if (isProduction) pipe.pipe(plugins.uglify());
return pipe.pipe(plugins.concat('vendor.bundle.js'))
.pipe(gulp.dest(paths.dest));
});
gulp.task('sass', function () {
var pipe = gulp.src(paths.sassEntryScript)
.pipe(plugins.sass({outputStyle: isProduction ? 'compressed' : 'nested'}));
return pipe.pipe(plugins.rename('app.bundle.css')).pipe(gulp.dest(paths.dest));
});
gulp.task('default', ['vendor-scripts', 'scripts', 'sass']);