Refactor code of gulp scripts

This commit is contained in:
Tyler Long
2017-04-16 18:36:42 +08:00
parent 3d500800f1
commit 8536c975bf
8 changed files with 124 additions and 207 deletions

View File

@@ -15,7 +15,7 @@ var params = {
root: './test/examples', // Set root directory that's being server. Defaults to cwd.
open: true, // When false, it won't load your browser by default.
ignore: 'scss,my/templates', // comma-separated string for paths to ignore
// file: "index.html", // When set, serve this file for every 404 (useful for single-page applications)
// file: "index.html", // When set, serve this file for every 404 (useful for single-page applications)
wait: 1000, // Waits for all changes, before reloading. Defaults to 0 sec.
mount: [['/dist', './dist']] // Mount a directory to a route.
}
@@ -32,30 +32,13 @@ gulp.task('watch2', ['live-server'], function () {
// Basic usage
gulp.task('watch-mermaid', function () {
return gulp.src('src/mermaid.js')
.pipe(browserify({
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
.pipe(browserify({
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
})
// var bg = require("gulp-bg");
//
// let bgtask;
// gulp.task("server", bgtask = bg("node", "--harmony", "server.js"));
//
// const exitCallback = (proc) => { if (proc.errorcode != 0) { process.exit(proc.errorcode); } };
//
// gulp.task("stop", () => {
// bgtask.setCallback(exitCallback);
// bgtask.stop();
// }
// });
//
// gulp.task("default", ["server"], function() {
// gulp.watch(["server.js"], ["server"]);
// });

View File

@@ -1,12 +1,10 @@
var gulp = require('gulp')
var browserify = require('gulp-browserify')
// 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 insert = require('gulp-insert')
/**
@@ -20,123 +18,87 @@ var insert = require('gulp-insert')
// Basic usage
gulp.task('slimDist', function () {
// Single entry point to browserify
// Single entry point to browserify
return gulp.src('src/main.js')
.pipe(browserify())
/* .pipe(browserify({standalone: 'mermaid'}))
.on('prebundle', function(bundle) {
// Keep these external for the slim version.
slim_ext_libs.forEach(function(lib) {
bundle.external(lib);
});
}) */
.pipe(rename('mermaid-legacy.slim.js'))
.pipe(insert.prepend('(function () { var define = undefined; '))
.pipe(insert.append(' })();'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
.pipe(browserify())
.pipe(rename('mermaid-legacy.slim.js'))
.pipe(insert.prepend('(function () { var define = undefined; '))
.pipe(insert.append(' })();'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
})
// Basic usage
gulp.task('fullDist', ['slimDist'], function () {
// Single entry point to browserify
// 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-legacy.full.js'))
.pipe(gulp.dest('./dist/'))
.pipe(concat('mermaid-legacy.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/'))
.pipe(concat('mermaid.full.min.js'))
.pipe(gulp.dest('./dist/'))
})
// Basic usage
// gulp.task('api', shell.task([
// 'browserify src/mermaid.js | uglify > dist/mermaid.min.js',
// 'browserify src/mermaid.js | uglify > dist/mermaid.min.js',
// 'browserify src/mermaidAPI.js -o dist/mermaidAPI.js'
// //'jison src/diagrams/sequenceDiagram/parser/sequenceDiagram.jison -o src/diagrams/sequenceDiagram/parser/sequenceDiagram.js'
// ]));
// Basic usage
gulp.task('mermaid.slim', function () {
// Single entry point to browserify
// var EXTERNALS = ['d3']
return gulp.src('src/mermaid.js')
.pipe(browserify({
external: ['d3'],
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.slim.js'))
// .on('prebundle', function(bundle){
// EXTERNALS.forEach(function(external){
// if(external.expose){
// bundle.require(external.require, {expose: external.expose} )
// }
// else{
// bundle.require(external.require)
// }
// })
// })
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
.pipe(browserify({
external: ['d3'],
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.slim.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
})
// Basic usage
gulp.task('mermaid', function () {
return gulp.src('src/mermaid.js')
.pipe(browserify({
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
.pipe(browserify({
entry: 'src/mermaid.js',
standalone: 'mermaid'
}))
.pipe(rename('mermaid.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
})
// Basic usage
gulp.task('mermaidAPI', function () {
return gulp.src('src/mermaidAPI.js')
.pipe(browserify({
}))
.pipe(gulp.dest('./dist/'))
// .pipe(uglify())
// .pipe(extReplace('.min.js'))
// .pipe(gulp.dest('./dist/'));
.pipe(browserify({
}))
.pipe(gulp.dest('./dist/'))
})
// Basic usage
gulp.task('mermaidAPI.slim', function () {
return gulp.src('src/mermaidAPI.js')
.pipe(browserify({
debug: true,
external: ['d3']
}))
.pipe(rename('mermaidAPI.slim.js'))
.pipe(gulp.dest('./dist/'))
.pipe(uglify())
.pipe(extReplace('.min.js'))
.pipe(gulp.dest('./dist/'))
.pipe(browserify({
debug: true,
external: ['d3']
}))
.pipe(rename('mermaidAPI.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/'))
.pipe(concat('build.js'))
.pipe(gulp.dest('./editor/'))
})
// gulp.task('dist', ['slimDist', 'fullDist','jasmine']);
gulp.task('legacy', ['slimDist', 'fullDist'])
gulp.task('dist', ['mermaidAPI', 'mermaidAPI.slim', 'mermaid.slim', 'mermaid'])

View File

@@ -1,8 +1,6 @@
var gulp = require('gulp')
// var mdvars = require('gulp-mdvars')
var vartree = require('gulp-vartree')
var gmarked = require('gulp-marked')
// var marked = require('marked')
var concat = require('gulp-concat')
var frontMatter = require('gulp-front-matter')
var hogan = require('hogan.js')
@@ -41,7 +39,7 @@ var filelog = require('gulp-filelog')
gulp.task('vartree', ['dox', 'copyContent', 'copySite'], function () {
gulp.src(['build/content/**/*.md'])
.pipe(filelog())
.pipe(filelog())
.pipe(frontMatter({
property: 'order' // will put metadata in the file.meta property
}))
@@ -57,24 +55,19 @@ gulp.task('vartree', ['dox', 'copyContent', 'copySite'], function () {
})) // Do whatever you want with the files later
.pipe(gulp.dest('build/www')).on('end', function () {
iterator(root)
// console.log('filelist');
// console.log(filelist);
gulp.src(filelist)
.pipe(concat('all.html'))
.pipe(gulp.dest('./build/www')).on('end', function () {
filelist.push('build/www' + '/all.html')
gulp.src(filelist)
.pipe(filelog('html files'))
// Run each file through a template
.pipe(es.map(function (file, cb) {
// console.log('file:',fileList);
// file.contents = new Buffer(template.render(file))
file.contents = Buffer.from(template.render(file))
.pipe(filelog('html files'))
// Run each file through a template
.pipe(es.map(function (file, cb) {
file.contents = Buffer.from(template.render(file))
cb(null, file)
}))
cb(null, file)
}))
// Output to build directory
.pipe(gulp.dest('./dist/www'))
})
@@ -83,65 +76,60 @@ gulp.task('vartree', ['dox', 'copyContent', 'copySite'], function () {
var dox = require('gulp-dox')
// var doxJson2Md = require('../plugins/doxJson2Md')
var map = require('map-stream')
var extReplace = require('gulp-ext-replace')
gulp.task('dox', function () {
// return gulp.src(['src/**/*.js','!src/**/parser/*.js','!src/**/*.spec.js'])
return gulp.src(['./src/**/mermaidAPI.js'])
.pipe(filelog())
.pipe(dox({
'raw': true
}))
.pipe(map(function (file, done) {
var json = JSON.parse(file.contents.toString())
var i
var str = ''
for (i = 0; i < json.length; i++) {
// console.log(json[i].description.full);
str = str + json[i].description.full + '\n'
}
// file.contents = new Buffer(str)
file.contents = Buffer.from(str)
done(null, file)
}))
.pipe(extReplace('.md'))
.pipe(gulp.dest('./build/content'))
.pipe(filelog())
.pipe(dox({
'raw': true
}))
.pipe(map(function (file, done) {
var json = JSON.parse(file.contents.toString())
var i
var str = ''
for (i = 0; i < json.length; i++) {
str = str + json[i].description.full + '\n'
}
file.contents = Buffer.from(str)
done(null, file)
}))
.pipe(extReplace('.md'))
.pipe(gulp.dest('./build/content'))
})
gulp.task('copyContent', function () {
return gulp.src(['./docs/content/**/*.md'])
.pipe(gulp.dest('./build/content'))
.pipe(gulp.dest('./build/content'))
})
gulp.task('copyContent', function () {
return gulp.src(['./docs/content/**/*.md'])
.pipe(gulp.dest('./build/content'))
.pipe(gulp.dest('./build/content'))
})
gulp.task('copySite', function () {
gulp.src(['./dist/mermaid.js'])
.pipe(filelog())
.pipe(gulp.dest('./dist/www/javascripts/lib'))
.pipe(filelog())
.pipe(gulp.dest('./dist/www/javascripts/lib'))
gulp.src(['./docs/site/**/*.css'])
.pipe(filelog())
.pipe(gulp.dest('./dist/www'))
.pipe(filelog())
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.eot'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.svg'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.png'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.jpg'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.ttf'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.woff'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
gulp.src(['./docs/site/**/*.woff2'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
return gulp.src(['./docs/site/**/*.js'])
.pipe(gulp.dest('./dist/www'))
.pipe(gulp.dest('./dist/www'))
})

View File

@@ -5,9 +5,9 @@ var filelog = require('gulp-filelog')
gulp.task('jison', function () {
return gulp.src('./src/**/*.jison')
.pipe(filelog('Jison file:'))
.pipe(jison({ moduleType: 'commonjs' }))
.pipe(gulp.dest('./src/'))
.pipe(filelog('Jison file:'))
.pipe(jison({ moduleType: 'commonjs' }))
.pipe(gulp.dest('./src/'))
})
gulp.task('jison_legacy', function () {

View File

@@ -6,29 +6,29 @@ var concat = require('gulp-concat')
gulp.task('editor-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/'))
.pipe(less({
generateSourceMap: false, // default true
paths: [path.join(__dirname, 'less', 'includes')]
}))
.pipe(concat('editor.css'))
.pipe(gulp.dest('./editor/css/'))
})
gulp.task('mermaid-less', function () {
gulp.src(['./src/less/*/mermaid.less'])
.pipe(less({
generateSourceMap: false, // default true
paths: [ path.join(__dirname, 'less', 'includes') ]
}))
.pipe(rename(function (path) {
if (path.dirname === 'default') {
path.basename = 'mermaid'
} else {
path.basename = 'mermaid.' + path.dirname
}
path.dirname = ''
}))
.pipe(gulp.dest('./dist/'))
.pipe(less({
generateSourceMap: false, // default true
paths: [path.join(__dirname, 'less', 'includes')]
}))
.pipe(rename(function (path) {
if (path.dirname === 'default') {
path.basename = 'mermaid'
} else {
path.basename = 'mermaid.' + path.dirname
}
path.dirname = ''
}))
.pipe(gulp.dest('./dist/'))
})
gulp.task('less', ['mermaid-less', 'editor-less'])

View File

@@ -4,8 +4,8 @@ var tagVersion = require('gulp-tag-version')
gulp.task('bump', function () {
gulp.src('./bw.json')
.pipe(bump({key: 'version'}))
.pipe(gulp.dest('./'))
.pipe(bump({ key: 'version' }))
.pipe(gulp.dest('./'))
})
// Assuming there's "version: 1.2.3" in package.json,
@@ -29,19 +29,12 @@ gulp.task('tag', function () {
*/
function inc (importance) {
// get all the files to bump version in
// get all the files to bump version in
return gulp.src(['./package.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());
// bump the version number in those files
.pipe(bump({ type: importance }))
// save it back to filesystem
.pipe(gulp.dest('./'))
}
gulp.task('patch', function () { return inc('patch') })

View File

@@ -1,19 +1,9 @@
var gulp = require('gulp')
var jasmine = require('gulp-jasmine')
// var gulp = require('gulp')
// var browserify = require('gulp-browserify')
var shell = require('gulp-shell')
// var jison = require('gulp-jison')
// 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 insert = require('gulp-insert')
var jshint = require('gulp-jshint')
var stylish = require('jshint-stylish')
var qunit = require('gulp-qunit')
var bower = require('gulp-bower')

View File

@@ -4,3 +4,4 @@
- node console output colors like Chrome console
- default theme doesn't work for class diagram
- mermaidAPI.js cannot be required directly
- compile less to css