123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- var gulp = require('gulp')
- var jshint = require('gulp-jshint')
- var webpack = require("webpack")
- var connect = require('gulp-connect')
- var mochaPhantomJS = require('gulp-mocha-phantomjs')
- var exec = require('child_process').exec
- var istanbul = require('gulp-istanbul')
- var mocha = require('gulp-mocha')
- var coveralls = require('gulp-coveralls')
- //
- gulp.task('hello', function() {
- console.log((function() {
- /*
- ___ ___ _ _
- | \/ | | | (_)
- | . . | ___ ___ | | __ _ ___
- | |\/| | / _ \ / __|| |/ / | |/ __|
- | | | || (_) || (__ | < _ | |\__ \
- \_| |_/ \___/ \___||_|\_\(_)| ||___/
- _/ |
- |__/
- */
- }).toString().split('\n').slice(2, -2).join('\n') + '\n')
- })
- // https://github.com/AveVlad/gulp-connect
- gulp.task('connect', function() {
- /* jshint unused:false */
- connect.server({
- port: 5050,
- middleware: function(connect, opt) {
- return [
- // https://github.com/senchalabs/connect/#use-middleware
- function cors(req, res, next) {
- res.setHeader('Access-Control-Allow-Origin', '*')
- res.setHeader('Access-Control-Allow-Methods', '*')
- next()
- }
- ]
- }
- })
- })
- // https://github.com/spenceralger/gulp-jshint
- gulp.task('jshint', function() {
- var globs = [
- 'src/**/*.js', 'test/test.*.js', 'gulpfile.js', '!**/regexp/parser.js'
- ]
- return gulp.src(globs)
- .pipe(jshint('.jshintrc'))
- .pipe(jshint.reporter('jshint-stylish'))
- })
- // https://webpack.github.io/docs/usage-with-gulp.html
- gulp.task("webpack", function( /*callback*/ ) {
- webpack({
- entry: './src/mock.js',
- output: {
- path: './dist',
- filename: 'mock.js',
- library: 'Mock',
- libraryTarget: 'umd'
- }
- }, function(err /*, stats*/ ) {
- // console.log(err, stats)
- if (err) throw err
- })
- webpack({
- entry: './src/mock.js',
- devtool: 'source-map',
- output: {
- path: './dist',
- filename: 'mock-min.js',
- library: 'Mock',
- libraryTarget: 'umd'
- },
- plugins: [
- new webpack.optimize.UglifyJsPlugin({
- minimize: true
- })
- ]
- }, function(err /*, stats*/ ) {
- // console.log(err, stats)
- if (err) throw err
- })
- })
- // https://github.com/mrhooray/gulp-mocha-phantomjs
- gulp.task('mocha', function() {
- return gulp.src('test/test.mock.html')
- .pipe(mochaPhantomJS({
- reporter: 'spec'
- }))
- })
- // https://github.com/floatdrop/gulp-watch
- var watchTasks = ['hello', 'madge', 'jshint', 'webpack', 'mocha']
- gulp.task('watch', function( /*callback*/ ) {
- gulp.watch(['src/**/*.js', 'gulpfile.js', 'test/*'], watchTasks)
- })
- // https://github.com/pahen/madge
- gulp.task('madge', function( /*callback*/ ) {
- exec('madge ./src/',
- function(error, stdout /*, stderr*/ ) {
- if (error) console.log('exec error: ' + error)
- console.log('module dependencies:')
- console.log(stdout)
- }
- )
- exec('madge --image ./src/dependencies.png ./src/',
- function(error /*, stdout, stderr*/ ) {
- if (error) console.log('exec error: ' + error)
- }
- )
- })
- // TODO
- // https://github.com/SBoudrias/gulp-istanbul
- gulp.task('istanbul', function(cb) {
- gulp.src(['test/test.coveralls.js'])
- .pipe(istanbul()) // Covering files
- .pipe(istanbul.hookRequire()) // Force `require` to return covered files
- .on('finish', function() {
- gulp.src(['test/test.coveralls.js'])
- .pipe(mocha({}))
- .pipe(istanbul.writeReports()) // Creating the reports after tests runned
- .on('end', cb)
- })
- })
- gulp.task('istanbulForMochaPhantomJS', function(cb) {
- gulp.src(['dist/mock.js'])
- .pipe(istanbul()) // Covering files
- .pipe(istanbul.hookRequire()) // Force `require` to return covered files
- .on('finish', function() {
- gulp.src(['test/test.mock.html'])
- .pipe(mochaPhantomJS({
- reporter: 'spec'
- }))
- .pipe(istanbul.writeReports()) // Creating the reports after tests runned
- .on('end', cb)
- })
- })
- // https://github.com/markdalgleish/gulp-coveralls
- gulp.task('coveralls', ['istanbul'], function() {
- return gulp.src('coverage/**/lcov.info')
- .pipe(coveralls())
- })
- //
- gulp.task('publish', function() {
- var child_process = require('child_process')
- child_process.exec('ls', function(error, stdout, stderr) {
- console.log(error, stdout, stderr)
- })
- })
- gulp.task('default', watchTasks.concat(['watch', 'connect']))
- gulp.task('build', ['jshint', 'webpack', 'mocha'])
|