mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-14 06:43:25 +08:00
152 lines
4.7 KiB
JavaScript
152 lines
4.7 KiB
JavaScript
var gulp = require('gulp');
|
|
var path = require('path');
|
|
var jison = require('gulp-jison');
|
|
var less = require('gulp-less');
|
|
var shell = require('gulp-shell');
|
|
var concat = require('gulp-concat');
|
|
var uglify = require('gulp-uglify');
|
|
var extReplace = require('gulp-ext-replace');
|
|
var rename = require('gulp-rename');
|
|
var istanbul = require('gulp-istanbul');
|
|
var bump = require('gulp-bump');
|
|
var tag_version = require('gulp-tag-version');
|
|
|
|
gulp.task('jison2', function() {
|
|
return gulp.src('./src/*.jison')
|
|
.pipe(jison({ moduleType: 'amd' }))
|
|
.pipe(gulp.dest('./src/'));
|
|
});
|
|
|
|
gulp.task('jison', shell.task([
|
|
'jison src/parser/flow.jison -o src/parser/flow.js'
|
|
//'source scripts/compileJison.sh'
|
|
// 'jison src/parser/flow.jison -o src/parser/flow.js',
|
|
]))
|
|
|
|
gulp.task('jisonSd', shell.task([
|
|
//'jison src/parser/flow.jison -o src/parser/flow.js',
|
|
'jison src/parser/sequence.jison -o src/parser/sequence.js'
|
|
//'source scripts/compileFlow.sh'
|
|
]));
|
|
|
|
gulp.task('dist', ['slimDist', 'fullDist','jasmine']);
|
|
|
|
var jasmine = require('gulp-jasmine');
|
|
|
|
gulp.task('jasmine',['jison'], function () {
|
|
return gulp.src(['src/**/*.spec.js'])
|
|
.pipe(jasmine());
|
|
});
|
|
|
|
gulp.task('coverage', function (cb) {
|
|
gulp.src(['src/**/*.js', '!src/**/*.spec.js'])
|
|
.pipe(istanbul()) // Covering files
|
|
.on('finish', function () {
|
|
gulp.src(['src/**/*.spec.js'])
|
|
.pipe(jasmine())
|
|
.pipe(istanbul.writeReports()) // Creating the reports after tests runned
|
|
.on('end', cb);
|
|
});
|
|
});
|
|
|
|
gulp.task('less', function () {
|
|
gulp.src(['./editor/css/editor.less'])
|
|
.pipe(less({
|
|
generateSourceMap: false, // default true
|
|
paths: [ path.join(__dirname, 'less', 'includes') ]
|
|
}))
|
|
.pipe(concat('editor.css'))
|
|
.pipe(gulp.dest('./editor/css/'));
|
|
});
|
|
|
|
var browserify = require('gulp-browserify');
|
|
|
|
// Basic usage
|
|
gulp.task('slimDist', function() {
|
|
// Single entry point to browserify
|
|
return gulp.src('src/main.js')
|
|
.pipe(browserify())
|
|
.pipe(rename('mermaid.slim.js'))
|
|
.pipe(gulp.dest('./dist/'))
|
|
.pipe(uglify())
|
|
.pipe(extReplace('.min.js'))
|
|
.pipe(gulp.dest('./dist/'));
|
|
});
|
|
|
|
|
|
// Build editor
|
|
gulp.task('editor', function() {
|
|
/*gulp.src(['src/editor.js'])
|
|
.pipe(browserify())
|
|
.pipe(concat('main.js'))
|
|
.pipe(gulp.dest('./editor/'));*/
|
|
return gulp.src(['node_modules/d3/d3.min.js','node_modules/dagre-d3/dist/dagre-d3.min.js','dist/mermaid.slim.js','src/editor.js'])
|
|
.pipe(concat('build.js'))
|
|
.pipe(gulp.dest('./editor/'));
|
|
});
|
|
|
|
|
|
// Basic usage
|
|
gulp.task('fullDist', ['slimDist'], function() {
|
|
// Single entry point to browserify
|
|
gulp.src(['node_modules/d3/d3.min.js','node_modules/dagre-d3/dist/dagre-d3.min.js','dist/mermaid.slim.js'])
|
|
.pipe(concat('mermaid.full.js'))
|
|
.pipe(gulp.dest('./dist/'));
|
|
return gulp.src(['node_modules/d3/d3.min.js','node_modules/dagre-d3/dist/dagre-d3.min.js','dist/mermaid.slim.min.js'])
|
|
.pipe(concat('mermaid.full.min.js'))
|
|
.pipe(gulp.dest('./dist/'));
|
|
});
|
|
|
|
// Basic usage
|
|
gulp.task('npmDist', ['slimDist'], function() {
|
|
// Single entry point to browserify
|
|
return gulp.src('src/main.js')
|
|
.pipe(browserify())
|
|
.pipe(gulp.dest('./dist/'));
|
|
});
|
|
|
|
gulp.task('bump', function(){
|
|
gulp.src('./bw.json')
|
|
.pipe(bump({key: "version"}))
|
|
.pipe(gulp.dest('./'));
|
|
});
|
|
|
|
// Assuming there's "version: 1.2.3" in package.json,
|
|
// tag the last commit as "v1.2.3"//
|
|
gulp.task('tag', function() {
|
|
return gulp.src(['./package.json']).pipe(tag_version());
|
|
});
|
|
|
|
/**
|
|
* Bumping version number and tagging the repository with it.
|
|
* Please read http://semver.org/
|
|
*
|
|
* You can use the commands
|
|
*
|
|
* gulp patch # makes v0.1.0 → v0.1.1
|
|
* gulp feature # makes v0.1.1 → v0.2.0
|
|
* gulp release # makes v0.2.1 → v1.0.0
|
|
*
|
|
* To bump the version numbers accordingly after you did a patch,
|
|
* introduced a feature or made a backwards-incompatible release.
|
|
*/
|
|
|
|
function inc(importance) {
|
|
// get all the files to bump version in
|
|
return gulp.src(['./package.json', './bower.json'])
|
|
// bump the version number in those files
|
|
.pipe(bump({type: importance}))
|
|
// save it back to filesystem
|
|
.pipe(gulp.dest('./'));
|
|
// commit the changed version number
|
|
//.pipe(git.commit('bumps package version'))
|
|
|
|
// read only one file to get the version number
|
|
//.pipe(filter('package.json'))
|
|
// **tag it in the repository**
|
|
//.pipe(tag_version());
|
|
}
|
|
|
|
gulp.task('patch', function() { return inc('patch'); })
|
|
gulp.task('feature', function() { return inc('minor'); })
|
|
gulp.task('release', function() { return inc('major'); }) |