improved gulpfile.helper
This commit is contained in:
		
							parent
							
								
									78f4f6f5b9
								
							
						
					
					
						commit
						4882e77fdd
					
				
							
								
								
									
										153
									
								
								gulpfile.helper.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								gulpfile.helper.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,153 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					var $ = require('gulp-load-plugins')()
 | 
				
			||||||
 | 
					var minimist = require('minimist')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = function (gulp, helperOptions) {
 | 
				
			||||||
 | 
					  var options = minimist(process.argv.slice(2), {
 | 
				
			||||||
 | 
					    string: ['modulename', 'export', 'name', 'testport', 'testfiles', 'regenerator'],
 | 
				
			||||||
 | 
					    default: {
 | 
				
			||||||
 | 
					      modulename: helperOptions.moduleName,
 | 
				
			||||||
 | 
					      targetName: helperOptions.targetName,
 | 
				
			||||||
 | 
					      export: 'ignore',
 | 
				
			||||||
 | 
					      testport: '8888',
 | 
				
			||||||
 | 
					      testfiles: 'src/**/*.js',
 | 
				
			||||||
 | 
					      regenerator: process.version < 'v0.12'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var files = {
 | 
				
			||||||
 | 
					    src: helperOptions.polyfills.concat(helperOptions.concatOrder.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)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var babelOptions = {
 | 
				
			||||||
 | 
					    loose: 'all',
 | 
				
			||||||
 | 
					    modules: 'ignore',
 | 
				
			||||||
 | 
					    experimental: true
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (!options.regenerator) {
 | 
				
			||||||
 | 
					    babelOptions.blacklist = 'regenerator'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('dist', function () {
 | 
				
			||||||
 | 
					    return gulp.src(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('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('updateSubmodule', function () {
 | 
				
			||||||
 | 
					    return gulp.src('./package.json', {read: false})
 | 
				
			||||||
 | 
					      .pipe($.shell([
 | 
				
			||||||
 | 
					        'git submodule update --init'
 | 
				
			||||||
 | 
					      ]))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('bump', function () {
 | 
				
			||||||
 | 
					    var bumptype
 | 
				
			||||||
 | 
					    return gulp.src(['./package.json', './dist/package.json', './dist/bower.json'], {base: '.'})
 | 
				
			||||||
 | 
					      .pipe($.prompt.prompt({
 | 
				
			||||||
 | 
					        type: 'checkbox',
 | 
				
			||||||
 | 
					        name: 'bump',
 | 
				
			||||||
 | 
					        message: 'What type of bump would you like to do?',
 | 
				
			||||||
 | 
					        choices: ['patch', 'minor', 'major']
 | 
				
			||||||
 | 
					      }, function (res) {
 | 
				
			||||||
 | 
					        bumptype = res.bump
 | 
				
			||||||
 | 
					      }))
 | 
				
			||||||
 | 
					      .pipe($.bump({type: bumptype}))
 | 
				
			||||||
 | 
					      .pipe(gulp.dest('./'))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('publish', ['test', 'updateSubmodule', 'bump', 'dist'], function () {
 | 
				
			||||||
 | 
					    return gulp.src('./package.json', {read: false})
 | 
				
			||||||
 | 
					      .pipe($.prompt.confirm({
 | 
				
			||||||
 | 
					        message: 'Are you sure you want to publish this release?',
 | 
				
			||||||
 | 
					        default: false
 | 
				
			||||||
 | 
					      }))
 | 
				
			||||||
 | 
					      .pipe($.shell([
 | 
				
			||||||
 | 
					        'cp ./README.md ./dist/',
 | 
				
			||||||
 | 
					        'standard',
 | 
				
			||||||
 | 
					        'echo "Deploying version <%= getVersion(file.path) %>"',
 | 
				
			||||||
 | 
					        'git pull',
 | 
				
			||||||
 | 
					        'cd ./dist/ && git add -A',
 | 
				
			||||||
 | 
					        'cd ./dist/ && git commit -am "Deploy <%= getVersion(file.path) %>" -n',
 | 
				
			||||||
 | 
					        'cd ./dist/ && git push',
 | 
				
			||||||
 | 
					        'cd ./dist/ && git tag -a v<%= getVersion(file.path) %> -m "Release <%= getVersion(file.path) %>"',
 | 
				
			||||||
 | 
					        'cd ./dist/ && git push origin --tags',
 | 
				
			||||||
 | 
					        'git commit -am "Release <%= getVersion(file.path) %>" -n',
 | 
				
			||||||
 | 
					        'git push'
 | 
				
			||||||
 | 
					      ], {
 | 
				
			||||||
 | 
					        templateData: {
 | 
				
			||||||
 | 
					          getVersion: function (s) {
 | 
				
			||||||
 | 
					            return require(s).version
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('dev:node', ['test'], function () {
 | 
				
			||||||
 | 
					    gulp.watch('src/**/*.js', ['test'])
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('dev:browser', ['watch:build'], function () {
 | 
				
			||||||
 | 
					    return gulp.src(files.test)
 | 
				
			||||||
 | 
					      .pipe($.watch(['build/**/*.js']))
 | 
				
			||||||
 | 
					      .pipe($.jasmineBrowser.specRunner())
 | 
				
			||||||
 | 
					      .pipe($.jasmineBrowser.server({port: options.testport}))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gulp.task('test', ['build'], function () {
 | 
				
			||||||
 | 
					    return gulp.src(files.test)
 | 
				
			||||||
 | 
					      .pipe($.jasmine({
 | 
				
			||||||
 | 
					        verbose: true,
 | 
				
			||||||
 | 
					        includeStuckTrace: true
 | 
				
			||||||
 | 
					      }))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										48
									
								
								gulpfile.js
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								gulpfile.js
									
									
									
									
									
								
							@ -44,6 +44,8 @@
 | 
				
			|||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var gulp = require('gulp')
 | 
					var gulp = require('gulp')
 | 
				
			||||||
 | 
					var $ = require('gulp-load-plugins')()
 | 
				
			||||||
 | 
					var runSequence = require('run-sequence').use(gulp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require('./gulpfile.helper.js')(gulp, {
 | 
					require('./gulpfile.helper.js')(gulp, {
 | 
				
			||||||
  polyfills: ['./node_modules/gulp-babel/node_modules/babel-core/node_modules/regenerator/runtime.js'],
 | 
					  polyfills: ['./node_modules/gulp-babel/node_modules/babel-core/node_modules/regenerator/runtime.js'],
 | 
				
			||||||
@ -67,15 +69,45 @@ require('./gulpfile.helper.js')(gulp, {
 | 
				
			|||||||
  moduleName: 'yjs'
 | 
					  moduleName: 'yjs'
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gulp.task('default', ['test'])
 | 
					gulp.task('dev:examples', ['updateSubmodule', 'watch:dist'], function () {
 | 
				
			||||||
 | 
					  // watch all distfiles and copy them to bower_components
 | 
				
			||||||
gulp.task('copy:dist', function () {
 | 
					  var distfiles = ['./dist/*.js', './dist/*.js.map', '../y-*/dist/*.js', '../y-*/dist/*.js.map']
 | 
				
			||||||
  return gulp.src(['../y-*/dist/*.js', '../y-*/dist/*.js.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/'))
 | 
					    .pipe(gulp.dest('./dist/Examples/bower_components/'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return $.serve('dist/Examples/')()
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gulp.task('dev:examples', ['dist', 'copy:dist'], function () {
 | 
					gulp.task('default', function (cb) {
 | 
				
			||||||
  gulp.watch('src/**/*.js', ['copy:dist'])
 | 
					  gulp.src('package.json')
 | 
				
			||||||
 | 
					    .pipe($.prompt.prompt({
 | 
				
			||||||
  return $.serve('dist/Examples')()
 | 
					      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')
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }))
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "yjs",
 | 
					  "name": "yjs",
 | 
				
			||||||
  "version": "0.6.31",
 | 
					  "version": "0.6.32",
 | 
				
			||||||
  "description": "A framework for real-time p2p shared editing on arbitrary complex data types",
 | 
					  "description": "A framework for real-time p2p shared editing on arbitrary complex data types",
 | 
				
			||||||
  "main": "y.js",
 | 
					  "main": "y.js",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
@ -53,6 +53,7 @@
 | 
				
			|||||||
    "gulp-jasmine-browser": "^0.2.3",
 | 
					    "gulp-jasmine-browser": "^0.2.3",
 | 
				
			||||||
    "gulp-load-plugins": "^1.0.0",
 | 
					    "gulp-load-plugins": "^1.0.0",
 | 
				
			||||||
    "gulp-prompt": "^0.1.2",
 | 
					    "gulp-prompt": "^0.1.2",
 | 
				
			||||||
 | 
					    "gulp-rename": "^1.2.2",
 | 
				
			||||||
    "gulp-serve": "^1.2.0",
 | 
					    "gulp-serve": "^1.2.0",
 | 
				
			||||||
    "gulp-shell": "^0.5.1",
 | 
					    "gulp-shell": "^0.5.1",
 | 
				
			||||||
    "gulp-sourcemaps": "^1.5.2",
 | 
					    "gulp-sourcemaps": "^1.5.2",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user