travel/admin/node_modules/mockjs/gulpfile.js

164 lines
4.9 KiB
JavaScript

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'])