105 lines
2.9 KiB
JavaScript
105 lines
2.9 KiB
JavaScript
/* eslint-env node */
|
|
|
|
/** Gulp Commands
|
|
|
|
gulp command*
|
|
[--export ModuleType]
|
|
[--name ModuleName]
|
|
[--testport TestPort]
|
|
[--testfiles TestFiles]
|
|
|
|
Module name (ModuleName):
|
|
Compile this to "y.js" (default)
|
|
|
|
Supported module types (ModuleType):
|
|
- amd
|
|
- amdStrict
|
|
- common
|
|
- commonStrict
|
|
- ignore (default)
|
|
- system
|
|
- umd
|
|
- umdStrict
|
|
|
|
Test port (TestPort):
|
|
Serve the specs on port 8888 (default)
|
|
|
|
Test files (TestFiles):
|
|
Specify which specs to use!
|
|
|
|
Commands:
|
|
- build:deploy
|
|
Build this library for deployment (es6->es5, minified)
|
|
- dev:browser
|
|
Watch the ./src directory.
|
|
Builds the library on changes.
|
|
Starts an http-server and serves the test suite on http://127.0.0.1:8888.
|
|
- dev:node
|
|
Watch the ./src directory.
|
|
Builds and specs the library on changes.
|
|
Usefull to run with node-inspector.
|
|
`node-debug $(which gulp) dev:node
|
|
- test:
|
|
Test this library
|
|
*/
|
|
|
|
var gulp = require('gulp')
|
|
var $ = require('gulp-load-plugins')()
|
|
var runSequence = require('run-sequence').use(gulp)
|
|
|
|
require('./gulpfile.helper.js')(gulp, {
|
|
polyfills: [],
|
|
entry: './src/y.js',
|
|
targetName: 'y.js',
|
|
moduleName: 'Y',
|
|
includeRuntime: true,
|
|
specs: [
|
|
'./src/Database.spec.js',
|
|
'../y-array/src/Array.spec.js',
|
|
'../y-map/src/Map.spec.js'
|
|
]
|
|
})
|
|
|
|
gulp.task('dev:examples', ['watch:dist'], function () {
|
|
// watch all distfiles and copy them to bower_components
|
|
var distfiles = ['./dist/*.{js,es6}', './dist/*.{js,es6}.map', '../y-*/dist/*.{js,es6}', '../y-*/dist/*.{js,es6}.map']
|
|
gulp.src(distfiles)
|
|
.pipe($.watch(distfiles))
|
|
.pipe($.rename(function (path) {
|
|
var dir = path.dirname.split(/[\\\/]/)[0]
|
|
console.log(JSON.stringify(path))
|
|
path.dirname = dir === '.' ? 'yjs' : dir
|
|
}))
|
|
.pipe(gulp.dest('./dist/Examples/bower_components/'))
|
|
|
|
return $.serve('dist/Examples/')()
|
|
})
|
|
|
|
gulp.task('default', ['updateSubmodule'], function (cb) {
|
|
gulp.src('package.json')
|
|
.pipe($.prompt.prompt({
|
|
type: 'checkbox',
|
|
name: 'tasks',
|
|
message: 'Which tasks would you like to run?',
|
|
choices: [
|
|
'test Test this project',
|
|
'dev:examples Serve the examples directory in ./dist/',
|
|
'dev:browser Watch files & serve the testsuite for the browser',
|
|
'dev:nodejs Watch filse & test this project with nodejs',
|
|
'bump Bump the current state of the project',
|
|
'publish Publish this project. Creates a github tag',
|
|
'dist Build the distribution files'
|
|
]
|
|
}, function (res) {
|
|
var tasks = res.tasks.map(function (task) {
|
|
return task.split(' ')[0]
|
|
})
|
|
if (tasks.length > 0) {
|
|
console.info('gulp ' + tasks.join(' '))
|
|
runSequence(tasks, cb)
|
|
} else {
|
|
console.info('Ok, .. goodbye')
|
|
}
|
|
}))
|
|
})
|