Skip to content

Commit

Permalink
update to gulp 4 (#34)
Browse files Browse the repository at this point in the history
update to gulp 4
  • Loading branch information
JelteMX authored Sep 3, 2019
2 parents 5ece8a2 + 542fae6 commit 153c37a
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 89 deletions.
166 changes: 88 additions & 78 deletions generators/app/templates/Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ var gulp = require("gulp"),
zip = require("gulp-zip"),
del = require("del"),
newer = require("gulp-newer"),
gutil = require("gulp-util"),
log = require('fancy-log'),
colors = require('ansi-colors'),
plumber = require("gulp-plumber"),
gulpif = require("gulp-if"),
jsonTransform = require("gulp-json-transform"),
Expand All @@ -26,80 +27,89 @@ var pkg = require("./package.json"),
paths = widgetBuilderHelper.generatePaths(pkg),
xmlversion = widgetBuilderHelper.xmlversion;

gulp.task("default", ['build'], function() {
gulp.watch("./src/**/*", ["compress"]);
gulp.watch("./src/**/*.js", ["copy:js"]);
gulp.watch("./src/**/*.html", ["copy:html"])
});

gulp.task("clean", function () {
return del([
paths.WIDGET_TEST_DEST,
paths.WIDGET_DIST_DEST
], { force: true });
});

gulp.task("compress", ["clean"], function () {
return gulp.src("src/**/*")
.pipe(zip(pkg.name + ".mpk"))
.pipe(gulp.dest(paths.TEST_WIDGETS_FOLDER))
.pipe(gulp.dest("dist"));
});

gulp.task("copy:js", function () {
return gulp.src(["./src/**/*.js"])
.pipe(plumber(function (error) {
var msg = gutil.colors.red("Error");
if (error.fileName) {
msg += gutil.colors.red(" in ") + gutil.colors.cyan(error.fileName);
}
msg += " : " + gutil.colors.cyan(error.message);
gutil.log(msg);
this.emit("end");
}))
.pipe(jsValidate())
.pipe(newer(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER))
.pipe(gulp.dest(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER));
});

gulp.task("copy:html", function () {
return gulp.src(["./src/**/*.html"])
.pipe(newer(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER))
.pipe(gulp.dest(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER));
});

gulp.task("version:xml", function () {
return gulp.src(paths.PACKAGE_XML)
.pipe(xmlversion(argv.n))
.pipe(gulp.dest("./src/"));
});

gulp.task("version:json", function () {
return gulp.src("./package.json")
.pipe(gulpif(typeof argv.n !== "undefined", jsonTransform(function(data) {
data.version = argv.n;
return data;
}, 2)))
.pipe(gulp.dest("./"));
});

gulp.task("icon", function (cb) {
var icon = (typeof argv.file !== "undefined") ? argv.file : "./icon.png";
console.log("\nUsing this file to create a base64 string: " + gutil.colors.cyan(icon));
gulp.src(icon)
.pipe(intercept(function (file) {
console.log("\nCopy the following to your " + pkg.name + ".xml (after description):\n\n" + gutil.colors.cyan("<icon>") + file.contents.toString("base64") + gutil.colors.cyan("<\/icon>") + "\n");
cb();
}));
});

gulp.task("folders", function () {
paths.showPaths(); return;
});

gulp.task("modeler", function (cb) {
widgetBuilderHelper.runmodeler(MODELER_PATH, MODELER_ARGS, paths.TEST_PATH, cb);
});

gulp.task("build", ["compress"]);
gulp.task("version", ["version:xml", "version:json"]);
gulp.task("clean", function () {
return del([
paths.WIDGET_TEST_DEST,
paths.WIDGET_DIST_DEST
], { force: true });
});

gulp.task("compress", gulp.series(["clean"], function () {
return gulp.src("src/**/*")
.pipe(zip(pkg.name + ".mpk"))
.pipe(gulp.dest(paths.TEST_WIDGETS_FOLDER))
.pipe(gulp.dest("dist"));
}));

gulp.task("build", gulp.series(["compress"]));

gulp.task("default", gulp.series(['build'], function() {
gulp.watch("./src/**/*", ["compress"]);
gulp.watch("./src/**/*.js", ["copy:js"]);
gulp.watch("./src/**/*.html", ["copy:html"])
}));

gulp.task("compress", gulp.series(["clean"], function () {
return gulp.src("src/**/*")
.pipe(zip(pkg.name + ".mpk"))
.pipe(gulp.dest(paths.TEST_WIDGETS_FOLDER))
.pipe(gulp.dest("dist"));
}));

gulp.task("copy:js", function () {
return gulp.src(["./src/**/*.js"])
.pipe(plumber(function (error) {
var msg = colors.red("Error");
if (error.fileName) {
msg += colors.red(" in ") + colors.cyan(error.fileName);
}
msg += " : " + colors.cyan(error.message);
log(msg);
this.emit("end");
}))
.pipe(jsValidate())
.pipe(newer(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER))
.pipe(gulp.dest(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER));
});

gulp.task("copy:html", function () {
return gulp.src(["./src/**/*.html"])
.pipe(newer(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER))
.pipe(gulp.dest(paths.TEST_WIDGETS_DEPLOYMENT_FOLDER));
});

gulp.task("version:xml", function () {
return gulp.src(paths.PACKAGE_XML)
.pipe(xmlversion(argv.n))
.pipe(gulp.dest("./src/"));
});

gulp.task("version:json", function () {
return gulp.src("./package.json")
.pipe(gulpif(typeof argv.n !== "undefined", jsonTransform(function(data) {
data.version = argv.n;
return data;
}, 2)))
.pipe(gulp.dest("./"));
});

gulp.task("icon", function (cb) {
var icon = (typeof argv.file !== "undefined") ? argv.file : "./icon.png";
console.log("\nUsing this file to create a base64 string: " + colors.cyan(icon));
gulp.src(icon)
.pipe(intercept(function (file) {
console.log("\nCopy the following to your " + pkg.name + ".xml (after description):\n\n" + colors.cyan("<icon>") + file.contents.toString("base64") + colors.cyan("<\/icon>") + "\n");
cb();
}));
});

gulp.task("folders", function () {
paths.showPaths(); return;
});

gulp.task("modeler", function (cb) {
widgetBuilderHelper.runmodeler(MODELER_PATH, MODELER_ARGS, paths.TEST_PATH, cb);
});

gulp.task("version", gulp.parallel(["version:xml", "version:json"]));

21 changes: 11 additions & 10 deletions generators/app/templates/_package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,19 @@
"shelljs": "^0.7.4",
"xml2js": "^0.4.17"
},<% } if (builder == 'gulp') { %>
"ansi-colors": "^4.1.1",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-if": "^2.0.1",
"fancy-log": "^1.3.3",
"gulp": "^4.0.2",
"gulp-if": "^3.0.0",
"gulp-intercept": "^0.1.0",
"gulp-json-transform": "^0.4.2",
"gulp-newer": "^1.3.0",
"gulp-plumber": "^1.1.0",
"gulp-util": "^3.0.7",
"gulp-zip": "^3.2.0",
"gulp-jsvalidate": "^3.0.0",
"widgetbuilder-gulp-helper": "https://github.com/JelteMX/widgetbuilder-gulp-helper/archive/1.0.1.tar.gz",
"yargs": "^6.0.0"
"gulp-json-transform": "^0.4.7",
"gulp-newer": "^1.4.0",
"gulp-plumber": "^1.2.1",
"gulp-zip": "^5.0.0",
"gulp-jsvalidate": "^4.0.0",
"widgetbuilder-gulp-helper": "https://github.com/tieniber/widgetbuilder-gulp-helper/archive/1.0.2.tar.gz",
"yargs": "^14.0.0"
},<% } %>
"engines": {
"node": ">=5"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "generator-mendix",
"version": "2.2.4",
"version": "2.2.5",
"description": "Mendix Widget generator",
"license": "MIT",
"main": "app/index.js",
Expand Down

0 comments on commit 153c37a

Please sign in to comment.