1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00

refactor build config

This commit is contained in:
Rokt33r
2015-06-21 02:40:06 +09:00
parent 9e53bec631
commit 25eccacb4c
81 changed files with 6418 additions and 450 deletions

View File

@@ -1,118 +1,26 @@
require('dotenv').load()
var env = process.env
var gulp = require('gulp')
var styl = require('gulp-stylus')
var autoprefixer = require('gulp-autoprefixer')
var templateCache = require('gulp-angular-templatecache')
var globby = require('globby')
var template = require('gulp-template')
var del = require('del')
var runSequence = require('run-sequence')
var plumber = require('gulp-plumber')
var notify = require('gulp-notify')
var changed = require('gulp-changed')
var rename = require('gulp-rename')
var livereload = require('gulp-livereload')
var inject = require('gulp-inject')
// for Dist
var rev = require('gulp-rev')
var ngAnnotate = require('gulp-ng-annotate')
var templateCache = require('gulp-angular-templatecache')
var uglify = require('gulp-uglify')
var minifyCss = require('gulp-minify-css')
var merge = require('merge-stream')
var concat = require('gulp-concat')
var streamqueue = require('streamqueue')
var minifyHtml = require('gulp-minify-html')
var config = require('./build.config.js')
gulp.task('js', function () {
return streamqueue({objectMode: true},
gulp.src('tpls/env.js')
.pipe(template({
apiUrl: env.BUILD_API_URL
})),
gulp.src(['src/**/*.js'])
)
.pipe(changed('build'))
.pipe(gulp.dest('build'))
})
gulp.task('dist', function () {
var js = streamqueue({objectMode: true},
gulp.src(['src/**/*.js']),
gulp.src('tpls/env.js')
.pipe(template({
apiUrl: env.DIST_API_URL
})),
gulp.src('src/**/*.tpl.html')
.pipe(templateCache())
)
.pipe(ngAnnotate())
.pipe(uglify())
.pipe(concat('app.js'))
.pipe(gulp.dest('dist'))
var css = gulp.src('src/styles/main.styl')
.pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')}))
.pipe(styl())
.pipe(autoprefixer())
.pipe(minifyCss())
.pipe(gulp.dest('dist'))
var index = gulp.src('src/index.html')
.pipe(template({
scripts: ['app.js'],
styles: ['main.css'],
env: 'dist'
}))
.pipe(minifyHtml())
.pipe(gulp.dest('dist'))
return merge(js, css, index)
})
gulp.task('styl', function () {
return gulp.src('src/styles/main.styl')
.pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')}))
.pipe(styl())
.pipe(autoprefixer())
.pipe(gulp.dest('build'))
.pipe(notify('Stylus!!'))
.pipe(livereload())
})
gulp.task('tpls', function () {
return gulp.src('src/**/*.tpl.html')
.pipe(templateCache())
.pipe(notify('Tpls Done!! :)'))
.pipe(gulp.dest('build'))
})
gulp.task('index', function () {
var files = globby.sync(['build/**/*', '!build/vendor/**/*'])
var filter = function (files, ext) {
return files.filter(function (file) {
var reg = new RegExp('.+\.' + ext + '$')
return file.match(reg)
}).map(function (file) {
return file.replace('build/', '')
})
}
var scripts = filter(files, 'js')
var styles = filter(files, 'css')
return gulp.src('src/index.html')
.pipe(template({
scripts: scripts,
styles: styles,
env: 'build'
}))
.pipe(gulp.dest('build'))
.pipe(livereload())
})
gulp.task('vendor', function () {
var vendors = config.vendors
@@ -125,29 +33,53 @@ gulp.task('vendor', function () {
vendorFiles.push('node_modules/font-awesome/**/FontAwesome.*')
return gulp.src(vendorFiles)
.pipe(gulp.dest('build/vendor'))
.pipe(gulp.dest('src/browser/vendor'))
})
gulp.task('resources', function () {
return gulp.src('resources/**/*')
.pipe(changed('build/resources'))
.pipe(gulp.dest('build/resources'))
gulp.task('styl', function () {
return gulp.src('src/**/app.styl')
.pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')}))
.pipe(styl())
.pipe(autoprefixer())
.pipe(gulp.dest('src'))
.pipe(notify('Stylus!!'))
.pipe(livereload())
})
gulp.task('build', function (cb) {
runSequence(['js', 'styl', 'tpls', 'vendor', 'resources'], 'index', cb)
gulp.task('bs', function () {
return gulp.src('src/**/bootstrap.styl')
.pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')}))
.pipe(styl())
.pipe(autoprefixer())
.pipe(gulp.dest('src'))
.pipe(notify('Bootstrap compiled!!'))
.pipe(livereload())
})
gulp.task('watch', function (cb) {
gulp.watch(['.env', 'tpls/env.js', 'src/**/*.js'], ['js'])
gulp.task('inject', function (cb) {
runSequence('inject-main', 'inject-popup', cb)
})
gulp.watch('src/styles/**/*.styl', ['styl'])
gulp.task('inject-main', function () {
return gulp.src('src/browser/main/index.inject.html')
.pipe(inject(gulp.src(['src/browser/main/**/*.js', 'src/browser/main/**/*.css', 'src/browser/shared/**/*.js', 'src/browser/shared/**/*.css'], {read: false}), {
relative: true
}))
.pipe(rename(function (path) {
path.basename = 'index'
}))
.pipe(gulp.dest('src/browser/main/'))
})
gulp.watch('src/**/*.tpl.html', ['tpls'])
gulp.watch(['build/**/*.js', 'src/index.html'], ['index'])
livereload.listen()
gulp.task('inject-popup', function () {
return gulp.src('src/browser/popup/index.inject.html')
.pipe(inject(gulp.src(['src/browser/popup/**/*.js', 'src/browser/popup/**/*.css', 'src/browser/shared/**/*.js', 'src/browser/shared/**/*.css'], {read: false}), {
relative: true
}))
.pipe(rename(function (path) {
path.basename = 'index'
}))
.pipe(gulp.dest('src/browser/popup/'))
})
gulp.task('del', function (cb) {
@@ -157,5 +89,3 @@ gulp.task('del', function (cb) {
gulp.task('default', function (cb) {
runSequence('del', 'build', 'watch', cb)
})
require('./gulp-electron')(gulp)