MIF_E31210141/public/landing/third-party/silicon-theme/vendor/parallax-js/gulpfile.js

89 lines
2.5 KiB
JavaScript

const gulp = require('gulp')
const path = require('path')
const autoprefixer = require('autoprefixer')
const babelify = require('babelify')
const browserify = require('browserify')
const browsersync = require('browser-sync').create()
const buffer = require('vinyl-buffer')
const notifier = require('node-notifier')
const postcss = require('gulp-postcss')
const rename = require('gulp-rename');
const rimraf = require('rimraf')
const sass = require('gulp-sass')
const source = require('vinyl-source-stream')
const sourcemaps = require('gulp-sourcemaps')
const uglify = require('gulp-uglify')
const util = require('gulp-util')
gulp.task('clean', (cb) => {
rimraf('./dist', cb)
})
gulp.task('build', ['clean'], () => {
gulp.start('build:js', 'build:scss')
})
function showError(arg) {
notifier.notify({
title: 'Error',
message: '' + arg,
sound: 'Basso'
})
console.log(arg)
this.emit('end')
}
gulp.task('build:scss', () => {
return gulp.src(path.join('examples', 'assets', 'styles.scss'))
.pipe(sass({
outputStyle: 'nested',
precision: 10,
includePaths: ['.', 'node_modules'],
onError: showError
}).on('error', function(error) {
showError(error)
this.emit('end')
}))
.pipe(postcss([
autoprefixer({
browsers: ['last 2 versions', 'Firefox ESR', 'Explorer >= 9', 'Android >= 4.0', '> 2%']
})
]))
.pipe(gulp.dest(path.join('examples', 'assets')))
.pipe(browsersync.stream({match: '**/*.css'}))
})
gulp.task('build:js', () => {
return browserify({entries: path.join('src', 'parallax.js'), debug: true, standalone: 'Parallax'})
.transform("babelify", {presets: ["es2015"]})
.bundle()
.on('error', showError)
.pipe(source('parallax.js'))
.pipe(buffer())
.pipe(gulp.dest('dist'))
.pipe(rename('parallax.min.js'))
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.on('error', showError)
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('dist'))
.pipe(browsersync.stream({match: path.join('**','*.js')}))
})
gulp.task('watch', ['build'], () => {
browsersync.init({
notify: false,
port: 9000,
server: {
baseDir: [path.join('examples', 'pages'), path.join('examples', 'assets'), 'dist'],
directory: true
}
})
gulp.watch(path.join('src', '*.js'), ['build:js'])
gulp.watch(path.join('examples', 'assets', '*.scss'), ['build:scss'])
gulp.watch(path.join('examples', 'pages', '*.html'), browsersync.reload)
})
gulp.task('default', ['watch'])