| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- "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"),
- minifyHtml = require("gulp-minify-html"),
- concat = require("gulp-concat"),
- useref = require("gulp-useref"),
- gulpif = require("gulp-if"),
- ngAnnotate = require("gulp-ng-annotate"),
- ngHtml2Js = require("gulp-ng-html2js"),
- 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(minifyHtml())
- .pipe(ngHtml2Js({
- moduleName: function(file) {
- var pathParts = file.path.split("/");
- var prefix = pathParts[pathParts.length - 3];
- var moduleName = pathParts[pathParts.length - 2];
- return "modellang-ide." + (prefix === "pages" ? "" : prefix + ".") + moduleName;
- }
- }))
- .pipe(concat("templates.min.js"))
- .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("concat", ["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("*.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", ["concat", "parser", "generator"], function() {
- return gulp.src(opts.buildDir + "/web/{index,templates}.min.js")
- .pipe(plumber(errLogger))
- .pipe(concat("index.min.js"))
- .pipe(ngAnnotate())
- .pipe(uglify())
- .pipe(gulp.dest(opts.buildDir + "/web"));
- })
- .task("deploy", ["build"], function() {
- return gulp.src(opts.buildDir + "/web/**/*")
- .pipe(deploy({
- push: gutil.env.nopush ? false : true,
- }));
- })
- ;
|