cn.status.im/gulpfile.babel.js

85 lines
2.3 KiB
JavaScript
Raw Normal View History

import gulp from 'gulp'
import browserSync from 'browser-sync'
import sass from 'gulp-sass'
import autoprefixer from 'gulp-autoprefixer'
2017-11-10 15:53:16 -06:00
import browserify from 'browserify'
import source from 'vinyl-source-stream'
import streamify from 'gulp-streamify'
import babel from 'gulp-babel'
import tap from 'gulp-tap'
import buffer from 'gulp-buffer'
import sourcemaps from 'gulp-sourcemaps'
2017-11-10 15:53:16 -06:00
import del from 'del'
import gutil from 'gulp-util'
import rename from 'gulp-rename'
import uglify from 'gulp-uglify'
import htmlmin from 'gulp-htmlmin'
2018-08-15 13:41:55 -04:00
import template from 'gulp-template'
import imagemin from 'gulp-imagemin'
2017-11-10 15:53:16 -06:00
2018-08-15 13:41:55 -04:00
/* HTML template parameters */
const apk_url = (
2018-08-15 13:52:53 -04:00
process.env.APK_URL ||
2018-08-15 13:41:55 -04:00
'http://artifacts.status.im:8081/artifactory/nightlies-local/im.status.ethereum-14a369-rel.apk'
)
2018-08-11 10:14:02 -04:00
gulp.task('js', () => {
return gulp.src('src/js/**/*.js', {read: false})
2018-08-10 23:59:10 -04:00
.pipe(sourcemaps.init({loadMaps: true}))
2018-08-11 19:54:59 -04:00
.pipe(tap(f => {
2018-08-11 10:14:02 -04:00
f.contents = browserify(f.path, {debug: true}).bundle()
2018-08-10 23:59:10 -04:00
}))
.pipe(streamify(babel({presets: ['env']})))
2018-08-10 23:59:10 -04:00
.pipe(buffer())
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('dist/js'))
2018-08-11 00:19:55 -04:00
.pipe(browserSync.stream())
})
2018-08-11 10:14:02 -04:00
gulp.task('fonts', () => {
return gulp.src(['src/fonts**/*'])
.pipe(gulp.dest('dist'))
})
2018-08-11 10:14:02 -04:00
gulp.task('html', () => {
2018-08-11 00:19:55 -04:00
return gulp.src(['src/**/*.html'])
.pipe(htmlmin({collapseWhitespace: true, minifyJS: true}))
2018-08-15 13:41:55 -04:00
.pipe(template({apk_url}))
.pipe(rename(p => p.dirname = p.dirname.slice(5)))
2018-08-11 00:19:55 -04:00
.pipe(gulp.dest('dist'))
2017-11-10 15:53:16 -06:00
})
2018-08-11 10:14:02 -04:00
gulp.task('css', () => {
2018-08-10 23:59:10 -04:00
return gulp.src("src/scss/main.scss")
.pipe(sass())
.on('error', gutil.log)
.pipe(autoprefixer({ browsers: ['last 3 versions'], cascade: false }))
.pipe(gulp.dest("dist/css"))
2018-08-11 00:19:55 -04:00
.pipe(browserSync.stream())
2017-11-10 15:53:16 -06:00
})
2018-08-11 10:14:02 -04:00
gulp.task('images', () => {
2018-08-11 19:54:59 -04:00
return gulp.src('src/img/**/*')
2018-08-10 23:59:10 -04:00
.pipe(imagemin())
.pipe(gulp.dest('dist/img'))
2017-11-10 15:53:16 -06:00
})
2018-08-11 10:14:02 -04:00
gulp.task('clean', () => {
2017-11-10 15:53:16 -06:00
del.sync('dist/*')
})
2018-08-11 10:14:02 -04:00
gulp.task('develop', ['build'], () => {
browserSync.init({server: "./dist"})
2018-08-10 23:59:10 -04:00
gulp.watch("src/scss/*.scss", ['css'])
2018-08-11 00:19:55 -04:00
gulp.watch("src/js/*.js", ['js'])
gulp.watch("src/img/**/*", ['images'])
gulp.watch("./*.html", ['html']).on('change', browserSync.reload)
2018-08-10 23:59:10 -04:00
})
gulp.task('build', ['clean', 'css', 'images', 'fonts', 'js', 'html'])
2018-08-11 00:19:55 -04:00
gulp.task('default', ['develop'])