| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- "use strict";
- var gulp = require("gulp"),
- gutil = require("gulp-util"),
- plumber = require("gulp-plumber"),
- bower = require("gulp-bower"),
- peg = require("gulp-peg"),
- deploy = require("gulp-gh-pages"),
- babel = require("gulp-babel"),
- rename = require("gulp-rename"),
- uglify = require("gulp-uglify"),
- minifyCss = require("gulp-minify-css"),
- concat = require("gulp-concat"),
- useref = require("gulp-useref"),
- gulpif = require("gulp-if"),
- ngAnnotate = require("gulp-ng-annotate"),
- errLogger = gutil.log.bind(gutil, gutil.colors.red("Error: ")),
- opts = {
- buildDir: "build",
- };
- gulp
- .task("pre", function() {
- gulp.src(["src/web/**/*.html", "!src/web/index.html", "!src/web/bower_components/**/*"])
- .pipe(plumber(errLogger))
- .pipe(gulp.dest(opts.buildDir + "/web"));
- return gulp.src("src/web/assets/**/*")
- .pipe(plumber(errLogger))
- .pipe(babel())
- .pipe(uglify())
- .pipe(gulp.dest(opts.buildDir + "/web/assets"));
- })
- .task("bower", function() {
- return bower();
- })
- .task("minify", ["pre", "bower"], function() {
- var assets = useref.assets();
- return gulp.src("src/web/index.html")
- .pipe(plumber(errLogger))
- .pipe(assets)
- .pipe(gulpif("index.min.js", babel({blacklist: ["useStrict"]})))
- .pipe(gulpif("index.min.js", ngAnnotate()))
- .pipe(gulpif("*.js", uglify()))
- .pipe(gulpif("*.css", minifyCss()))
- .pipe(assets.restore())
- .pipe(useref())
- .pipe(gulp.dest(opts.buildDir + "/web"));
- })
- .task("parser", function() {
- return gulp.src("src/lib/parser/modellang.pegjs")
- .pipe(plumber(errLogger))
- .pipe(peg({
- exportVar: "modellangParser"
- }))
- .pipe(babel({modules: "umd", blacklist: ["useStrict"]}))
- .pipe(gulp.dest(opts.buildDir + "/lib/parser"))
- .pipe(rename("modellang-parser.js"))
- .pipe(uglify())
- .pipe(gulp.dest(opts.buildDir + "/web/assets/scripts"));
- })
- .task("generator", function() {
- return gulp.src("src/lib/generator/modellang.es6")
- .pipe(plumber(errLogger))
- .pipe(babel())
- .pipe(gulp.dest(opts.buildDir + "/lib/generator"))
- .pipe(rename("modellang-gen.js"))
- .pipe(uglify())
- .pipe(gulp.dest(opts.buildDir + "/web/assets/scripts"));
- })
- .task("default", ["parser", "generator"], function() {
- return;
- })
- .task("build", ["minify", "parser", "generator"], function() {
- return;
- })
- .task("deploy", ["build"], function() {
- return gulp.src(opts.buildDir + "/web/**/*")
- .pipe(deploy({
- push: gutil.env.nopush ? false : true,
- }));
- })
- ;
|