Gulp for assets
This commit is contained in:
66
gulpfile.js
Normal file
66
gulpfile.js
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
const {src, dest, series, parallel} = require('gulp')
|
||||||
|
const fs = require('fs')
|
||||||
|
const path = require('path')
|
||||||
|
const concat = require('gulp-concat')
|
||||||
|
const sourcemaps = require('gulp-sourcemaps')
|
||||||
|
const babel = require('gulp-babel')
|
||||||
|
const uglify = require('gulp-uglify')
|
||||||
|
const rename = require('gulp-rename')
|
||||||
|
const merge = require('merge-stream')
|
||||||
|
const sass = require('gulp-dart-sass')
|
||||||
|
|
||||||
|
let base_dir_js = 'resources/assets/scripts/'
|
||||||
|
let output_dir_js = 'public/assets/scripts/'
|
||||||
|
|
||||||
|
function getFolders(dir) {
|
||||||
|
return fs.readdirSync(dir)
|
||||||
|
.filter(function(file) {
|
||||||
|
return fs.statSync(path.join(dir, file)).isDirectory()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function bundle_base_js(done) {
|
||||||
|
return src(base_dir_js + '*.js')
|
||||||
|
.pipe(concat('main.js'))
|
||||||
|
.pipe(dest(output_dir_js))
|
||||||
|
.pipe(sourcemaps.init({loadMaps: true}))
|
||||||
|
.pipe(babel())
|
||||||
|
.pipe(uglify())
|
||||||
|
.pipe(rename('main.min.js'))
|
||||||
|
.pipe(sourcemaps.write('./'))
|
||||||
|
.pipe(dest(output_dir_js))
|
||||||
|
}
|
||||||
|
|
||||||
|
function bundle_js(done) {
|
||||||
|
let folders = getFolders(base_dir_js)
|
||||||
|
let tasks = folders.map(function(folder) {
|
||||||
|
return src(path.join(base_dir_js, folder, '**/*.js'))
|
||||||
|
.pipe(concat(folder + '.js', {newLine: ';'}))
|
||||||
|
.pipe(dest(output_dir_js))
|
||||||
|
.pipe(sourcemaps.init({loadMaps: true}))
|
||||||
|
.pipe(babel())
|
||||||
|
.pipe(uglify())
|
||||||
|
.pipe(rename(folder + '.min.js'))
|
||||||
|
.pipe(sourcemaps.write('./'))
|
||||||
|
.pipe(dest(output_dir_js))
|
||||||
|
})
|
||||||
|
|
||||||
|
return merge(tasks)
|
||||||
|
}
|
||||||
|
|
||||||
|
let base_dir_sass = 'resources/assets/sass/'
|
||||||
|
let output_dir_css = 'public/assets/styles/'
|
||||||
|
|
||||||
|
function bundle_base_sass(done) {
|
||||||
|
return src([base_dir_sass + '*.scss', '!' + base_dir_sass + '_*.scss'])
|
||||||
|
.pipe(sass())
|
||||||
|
.pipe(rename({extname: '.css'}))
|
||||||
|
.pipe(dest(output_dir_css))
|
||||||
|
.pipe(sourcemaps.init({loadMaps: true}))
|
||||||
|
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
|
||||||
|
.pipe(rename({extname: '.min.css'}))
|
||||||
|
.pipe(sourcemaps.write('./'))
|
||||||
|
.pipe(dest(output_dir_css))
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = series(bundle_base_js, bundle_js, bundle_base_sass)
|
Reference in New Issue
Block a user