improving.. breaking.. the gulpfile
This commit is contained in:
parent
0832be2380
commit
138afe39dc
@ -5,28 +5,47 @@ var minimist = require('minimist')
|
||||
module.exports = function (gulp, helperOptions) {
|
||||
var runSequence = require('run-sequence').use(gulp)
|
||||
var options = minimist(process.argv.slice(2), {
|
||||
string: ['modulename', 'export', 'name', 'testport', 'testfiles', 'regenerator'],
|
||||
string: ['modulename', 'export', 'name', 'testport', 'testfiles'],
|
||||
default: {
|
||||
modulename: helperOptions.moduleName,
|
||||
targetName: helperOptions.targetName,
|
||||
export: 'ignore',
|
||||
testport: '8888',
|
||||
testfiles: 'src/**/*.js',
|
||||
regenerator: process.version < 'v0.12'
|
||||
testfiles: '**/*.spec.js',
|
||||
browserify: helperOptions.browserify != null ? helperOptions.browserify : false,
|
||||
regenerator: true,
|
||||
debug: false
|
||||
}
|
||||
})
|
||||
|
||||
if (options.regenerator === 'false') {
|
||||
options.regenerator = false
|
||||
// TODO: include './node_modules/gulp-babel/node_modules/babel-core/node_modules/regenerator/runtime.js'
|
||||
}
|
||||
var concatOrder = [
|
||||
'y.js',
|
||||
'Connector.js',
|
||||
'Database.js',
|
||||
'Transaction.js',
|
||||
'Struct.js',
|
||||
'Utils.js',
|
||||
'Databases/RedBlackTree.js',
|
||||
'Databases/Memory.js',
|
||||
'Databases/IndexedDB.js',
|
||||
'Connectors/Test.js',
|
||||
'Types/Array.js',
|
||||
'Types/Map.js',
|
||||
'Types/TextBind.js'
|
||||
]
|
||||
var yjsfiles = concatOrder.map(function (f) {
|
||||
return '../yjs/src/' + f
|
||||
})
|
||||
var files = {
|
||||
src: helperOptions.polyfills.concat(helperOptions.concatOrder.map(function (f) {
|
||||
dist: helperOptions.polyfills.concat(helperOptions.files.map(function (f) {
|
||||
return 'src/' + f
|
||||
})),
|
||||
test: ['build/Helper.spec.js'].concat(helperOptions.concatOrder.map(function (f) {
|
||||
return 'build/' + f
|
||||
}).concat(['build/**/*.spec.js']))
|
||||
}
|
||||
|
||||
if (options.regenerator) {
|
||||
files.test = helperOptions.polyfills.concat(files.test)
|
||||
test: ['../yjs/src/Helper.spec.js'].concat(yjsfiles).concat(helperOptions.files.map(function (f) {
|
||||
return 'src/' + f
|
||||
}).concat(['src/' + options.testfiles]))
|
||||
}
|
||||
|
||||
var babelOptions = {
|
||||
@ -34,54 +53,64 @@ module.exports = function (gulp, helperOptions) {
|
||||
modules: 'ignore',
|
||||
experimental: true
|
||||
}
|
||||
if (!options.regenerator) {
|
||||
if (options.regenerator) {
|
||||
files.test = helperOptions.polyfills.concat(files.test)
|
||||
} else {
|
||||
babelOptions.blacklist = 'regenerator'
|
||||
}
|
||||
// babelOptions.blacklist = 'regenerator'
|
||||
|
||||
gulp.task('dist', ['build:dist'], function () {
|
||||
function createDist (pipe) {
|
||||
return pipe
|
||||
.pipe($.if(options.debug, $.sourcemaps.init({loadMaps: true})))
|
||||
.pipe($.concat(options.targetName))
|
||||
.pipe($.if(!options.debug && options.regenerator, $.uglify()))
|
||||
.pipe($.if(options.debug, $.sourcemaps.write('.')))
|
||||
.pipe(gulp.dest('./dist/'))
|
||||
}
|
||||
var pipe
|
||||
if (options.browserify || true) {
|
||||
var browserify = require('browserify')
|
||||
var source = require('vinyl-source-stream')
|
||||
var buffer = require('vinyl-buffer')
|
||||
|
||||
pipe = browserify({
|
||||
entries: 'build/' + options.targetName,
|
||||
debug: options.debug
|
||||
}).bundle()
|
||||
.pipe(source(options.targetName))
|
||||
.pipe(buffer())
|
||||
} else {
|
||||
pipe = gulp.src('build/' + options.targetName)
|
||||
}
|
||||
return createDist(pipe)
|
||||
})
|
||||
|
||||
gulp.task('dist', function () {
|
||||
return gulp.src(files.src)
|
||||
.pipe($.sourcemaps.init())
|
||||
var browserify = require('browserify')
|
||||
var source = require('vinyl-source-stream')
|
||||
var buffer = require('vinyl-buffer')
|
||||
|
||||
return browserify({
|
||||
entries: files.dist,
|
||||
debug: options.debug
|
||||
}).bundle()
|
||||
.pipe(source(options.targetName))
|
||||
.pipe(buffer())
|
||||
.pipe($.if(options.debug, $.sourcemaps.init({loadMaps: true})))
|
||||
.pipe($.concat(options.targetName))
|
||||
.pipe($.babel({
|
||||
loose: 'all',
|
||||
modules: 'ignore',
|
||||
experimental: true
|
||||
}))
|
||||
.pipe($.uglify())
|
||||
.pipe($.sourcemaps.write('.'))
|
||||
.pipe($.if(!options.debug && options.regenerator, $.uglify()))
|
||||
.pipe($.if(options.debug, $.sourcemaps.write('.')))
|
||||
.pipe(gulp.dest('./dist/'))
|
||||
})
|
||||
|
||||
gulp.task('watch:dist', function () {
|
||||
gulp.src(files.src)
|
||||
.pipe($.watch(files.src))
|
||||
.pipe($.sourcemaps.init())
|
||||
.pipe($.concat(options.targetName))
|
||||
.pipe($.babel({
|
||||
loose: 'all',
|
||||
modules: 'ignore',
|
||||
experimental: true
|
||||
}))
|
||||
// .pipe($.uglify())
|
||||
.pipe($.sourcemaps.write('.'))
|
||||
.pipe(gulp.dest('./dist/'))
|
||||
})
|
||||
|
||||
gulp.task('build', function () {
|
||||
return gulp.src('src/**/*.js')
|
||||
.pipe($.sourcemaps.init())
|
||||
.pipe($.babel(babelOptions))
|
||||
.pipe($.sourcemaps.write())
|
||||
.pipe(gulp.dest('build'))
|
||||
})
|
||||
|
||||
gulp.task('watch:build', function () {
|
||||
gulp.src('src/**/*.js')
|
||||
.pipe($.watch('src/**/*.js'))
|
||||
.pipe($.sourcemaps.init())
|
||||
.pipe($.babel(babelOptions))
|
||||
.pipe($.sourcemaps.write())
|
||||
.pipe(gulp.dest('build'))
|
||||
gulp.task('watch:dist', function (cb) {
|
||||
options.debug = true
|
||||
runSequence('dist', function () {
|
||||
gulp.watch(files.dist, ['dist'])
|
||||
cb()
|
||||
})
|
||||
})
|
||||
|
||||
gulp.task('updateSubmodule', function () {
|
||||
@ -141,7 +170,7 @@ module.exports = function (gulp, helperOptions) {
|
||||
})
|
||||
|
||||
gulp.task('dev:node', ['test'], function () {
|
||||
gulp.watch('src/**/*.js', ['test'])
|
||||
gulp.watch(files.dist, ['test'])
|
||||
})
|
||||
|
||||
gulp.task('dev:browser', ['watch:build'], function () {
|
||||
@ -151,8 +180,9 @@ module.exports = function (gulp, helperOptions) {
|
||||
.pipe($.jasmineBrowser.server({port: options.testport}))
|
||||
})
|
||||
|
||||
gulp.task('test', ['build'], function () {
|
||||
return gulp.src(files.test)
|
||||
gulp.task('test', function () {
|
||||
console.log(files.test)
|
||||
return gulp.src('./dist/y.js')
|
||||
.pipe($.jasmine({
|
||||
verbose: true,
|
||||
includeStuckTrace: true
|
||||
|
@ -48,8 +48,8 @@ var $ = require('gulp-load-plugins')()
|
||||
var runSequence = require('run-sequence').use(gulp)
|
||||
|
||||
require('./gulpfile.helper.js')(gulp, {
|
||||
polyfills: ['./node_modules/gulp-babel/node_modules/babel-core/node_modules/regenerator/runtime.js'],
|
||||
concatOrder: [
|
||||
polyfills: [],
|
||||
files: [
|
||||
'y.js',
|
||||
'Connector.js',
|
||||
'Database.js',
|
||||
@ -60,7 +60,6 @@ require('./gulpfile.helper.js')(gulp, {
|
||||
'Databases/Memory.js',
|
||||
'Databases/IndexedDB.js',
|
||||
'Connectors/Test.js',
|
||||
'Connectors/WebRTC.js',
|
||||
'Types/Array.js',
|
||||
'Types/Map.js',
|
||||
'Types/TextBind.js'
|
||||
@ -84,7 +83,7 @@ gulp.task('dev:examples', ['updateSubmodule', 'watch:dist'], function () {
|
||||
return $.serve('dist/Examples/')()
|
||||
})
|
||||
|
||||
gulp.task('default', function (cb) {
|
||||
gulp.task('default', ['updateSubmodule'], function (cb) {
|
||||
gulp.src('package.json')
|
||||
.pipe($.prompt.prompt({
|
||||
type: 'checkbox',
|
||||
|
10
package.json
10
package.json
@ -43,12 +43,14 @@
|
||||
"homepage": "http://y-js.org",
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^4.1.2",
|
||||
"browserify": "^12.0.1",
|
||||
"gulp": "^3.9.0",
|
||||
"gulp-babel": "^5.2.1",
|
||||
"gulp-bump": "^1.0.0",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-filter": "^3.0.1",
|
||||
"gulp-git": "^1.6.0",
|
||||
"gulp-if": "^2.0.0",
|
||||
"gulp-jasmine": "^2.0.1",
|
||||
"gulp-jasmine-browser": "^0.2.3",
|
||||
"gulp-load-plugins": "^1.0.0",
|
||||
@ -58,12 +60,14 @@
|
||||
"gulp-shell": "^0.5.1",
|
||||
"gulp-sourcemaps": "^1.5.2",
|
||||
"gulp-tag-version": "^1.3.0",
|
||||
"gulp-uglify": "^1.4.1",
|
||||
"gulp-uglify": "^1.4.2",
|
||||
"gulp-util": "^3.0.6",
|
||||
"gulp-watch": "^4.3.5",
|
||||
"minimist": "^1.2.0",
|
||||
"pre-commit": "^1.1.1",
|
||||
"promise-polyfill": "^2.1.0",
|
||||
"standard": "^5.2.2"
|
||||
"run-sequence": "^1.1.4",
|
||||
"standard": "^5.2.2",
|
||||
"vinyl-buffer": "^1.0.0",
|
||||
"vinyl-source-stream": "^1.1.0"
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user