Created
June 19, 2017 14:26
-
-
Save kyle-mccarthy/928489c4f6b6b1c09762e00c43504824 to your computer and use it in GitHub Desktop.
gulpfile.js for yii2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const gulp = require('gulp'), sass = require('gulp-sass'), browserify = require('browserify'), | |
concat = require('gulp-concat'), glob = require('glob'), uglify = require('gulp-uglify'), | |
source = require('vinyl-source-stream'), buffer = require('vinyl-buffer'), sourcemaps = require('gulp-sourcemaps'), | |
gutil = require('gulp-util'), babelify = require('babelify'), rename = require("gulp-rename"), | |
watch = require('gulp-watch'), yargs = require('yargs'), gulpif = require('gulp-if'); | |
let args = yargs.argv; | |
let isProd = !!(args.prod); | |
let _compileScripts = () => { | |
gutil.log(gutil.colors.blue("Compiling Scripts")); | |
let files = ['./vendor.js']; | |
files = [...files, ...glob.sync('./src/scripts/**/*.js')]; | |
return browserify({ entries: files, debug: true }) | |
.transform(babelify, { presets: ['env'], sourceMaps: true }) | |
.bundle() | |
.on('error', (err) => { | |
gutil.log('Browerserify Error', gutil.colors.red(err.message)) | |
}) | |
.pipe(source('main.min.js')) | |
.pipe(buffer()) | |
.pipe(sourcemaps.init({ loadmaps: true })) | |
.pipe(gulpif(isProd, uglify())) | |
.pipe(sourcemaps.write('./')) | |
.pipe(gulp.dest('../web/dist/js')); | |
}; | |
let _compileStyles = () => { | |
gutil.log(gutil.colors.blue("Compiling Styles")); | |
return gulp.src('./src/styles/main.scss') | |
.pipe(rename('main.min.css')) | |
.pipe(sourcemaps.init()) | |
.pipe(gulpif(isProd, sass({outputStyle: 'compressed'}).on('error', (err) => gutil.colors.red(err.message)))) | |
.pipe(gulpif(!isProd, sass().on('error', (err) => gutil.colors.red(err.message)))) | |
.pipe(sourcemaps.write('./')) | |
.pipe(gulp.dest('../web/dist/css')); | |
} | |
gulp.task('default', () => { | |
_compileStyles(); | |
_compileScripts(); | |
}); | |
gulp.task('watch', () => { | |
watch(['vendor.js', 'src/scripts/**/*.js'], { ignoreInitial: false }, () => { _compileScripts() }); | |
watch('src/styles/**/*.scss', { ignoreInitial: false }, () => { _compileStyles() }); | |
}); | |
gulp.task('scripts', () => { | |
return _compileScripts(); | |
}); | |
gulp.task('styles', () => { | |
return _compileStyles(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment