0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-08 16:18:11 -05:00

Add build steps for preview app.

This commit is contained in:
Andrey Antukh 2016-06-11 21:43:57 +03:00
parent 3367e9befe
commit b4bd723685
No known key found for this signature in database
GPG key ID: 4DFEBCB8316A8B95
4 changed files with 165 additions and 43 deletions

1
.gitignore vendored
View file

@ -18,4 +18,5 @@ node_modules
/resources/public/css /resources/public/css
/resources/public/js /resources/public/js
/resources/public/index.html /resources/public/index.html
/resources/public/preview/index.html
/*-init.clj /*-init.clj

View file

@ -1,21 +1,25 @@
var gulp = require("gulp"); const gulp = require("gulp");
var runseq = require('run-sequence'); const runseq = require('run-sequence');
var scss = require("gulp-sass"); const scss = require("gulp-sass");
var plumber = require("gulp-plumber"); const plumber = require("gulp-plumber");
var autoprefixer = require('gulp-autoprefixer'); const autoprefixer = require('gulp-autoprefixer');
var watch = require("gulp-watch"); const watch = require("gulp-watch");
var cssmin = require("gulp-cssmin"); const cssmin = require("gulp-cssmin");
var rimraf = require("rimraf"); const rimraf = require("rimraf");
var mustache = require("gulp-mustache"); const mustache = require("gulp-mustache");
var rename = require("gulp-rename"); const rename = require("gulp-rename");
var paths = {}; const paths = {};
paths.app = "./resources/"; paths.app = "./resources/";
paths.output = "./resources/public/"; paths.output = "./resources/public/";
paths.dist = "./dist/"; paths.dist = "./dist/";
paths.target = "./target/"; paths.target = "./target/";
paths.scss = paths.app + "styles/**/*.scss"; paths.scss = paths.app + "styles/**/*.scss";
/***********************************************
* Styles
***********************************************/
function makeAutoprefixer() { function makeAutoprefixer() {
return autoprefixer('last 2 version', return autoprefixer('last 2 version',
'safari 5', 'safari 5',
@ -24,8 +28,8 @@ function makeAutoprefixer() {
} }
function scssPipeline(options) { function scssPipeline(options) {
var input = options.input; const input = options.input;
var output = options.output; const output = options.output;
return gulp.src(input) return gulp.src(input)
.pipe(plumber()) .pipe(plumber())
@ -34,32 +38,29 @@ function scssPipeline(options) {
.pipe(gulp.dest(output)); .pipe(gulp.dest(output));
} }
gulp.task("scss:theme-light", function() { gulp.task("scss:main", function() {
return scssPipeline({ return scssPipeline({
input: paths.app + "styles/main.scss", input: paths.app + "styles/main.scss",
output: paths.output + "css/" output: paths.output + "css/"
}); });
}); });
// gulp.task("scss:theme-dark", function() { gulp.task("scss:preview", function() {
// return scssPipeline({ return scssPipeline({
// input: paths.app + "styles/main-theme-dark.scss", input: paths.app + "styles/preview.scss",
// output: paths.output + "css/" output: paths.output + "css/"
// }); });
// });
gulp.task("scss:all", [ // "scss:theme-dark",
"scss:theme-light"]);
gulp.task("dist:cssmin", function() {
return gulp.src(paths.output + "css/main.css")
.pipe(cssmin())
.pipe(gulp.dest(paths.output + "css/"));
}); });
gulp.task("template", function() { gulp.task("scss", ["scss:main", "scss:preview"]);
var ts = Math.floor(new Date());
var tmpl = mustache({ /***********************************************
* Templates
***********************************************/
gulp.task("template:main", function() {
const ts = Math.floor(new Date());
const tmpl = mustache({
jsfile: "/js/main.js?v=" + ts, jsfile: "/js/main.js?v=" + ts,
cssfile: "/css/main.css?v=" + ts cssfile: "/css/main.css?v=" + ts
}); });
@ -70,14 +71,53 @@ gulp.task("template", function() {
.pipe(gulp.dest(paths.output)); .pipe(gulp.dest(paths.output));
}); });
gulp.task("template:preview", function() {
const ts = Math.floor(new Date());
const tmpl = mustache({
jsfile: "/js/preview.js?v=" + ts,
cssfile: "/css/preview.css?v=" + ts
});
return gulp.src(paths.app + "preview.mustache")
.pipe(tmpl)
.pipe(rename("index.html"))
.pipe(gulp.dest(paths.output + "preview/"));
});
gulp.task("template", ["template:preview",
"template:main"]);
/***********************************************
* Production Build
***********************************************/
gulp.task("dist:cssmin:main", function() {
return gulp.src(paths.output + "css/main.css")
.pipe(cssmin())
.pipe(gulp.dest(paths.output + "css/"));
});
gulp.task("dist:cssmin:preview", function() {
return gulp.src(paths.output + "css/preview.css")
.pipe(cssmin())
.pipe(gulp.dest(paths.output + "css/"));
});
gulp.task("dist:cssmin", ["dist:cssmin:main",
"dist:cssmin:preview"]);
gulp.task("dist:scss", function(next) { gulp.task("dist:scss", function(next) {
runseq("scss:all", "dist:cssmin", next); runseq("scss", "dist:cssmin", next);
}); });
gulp.task("dist:clean", function(next) { gulp.task("dist:clean", function(next) {
rimraf(paths.dist, next); rimraf(paths.dist, next);
}); });
/***********************************************
* Helper Tasks
***********************************************/
gulp.task("clean", function(next) { gulp.task("clean", function(next) {
rimraf(paths.output + "css/", function() { rimraf(paths.output + "css/", function() {
rimraf(paths.output + "js/", function() { rimraf(paths.output + "js/", function() {
@ -91,12 +131,16 @@ gulp.task("dist:copy", function() {
.pipe(gulp.dest(paths.dist)); .pipe(gulp.dest(paths.dist));
}); });
/***********************************************
* Entry Points
***********************************************/
// Default // Default
gulp.task("dist", function(next) { gulp.task("dist", function(next) {
runseq("template", "dist:scss", "dist:clean", "dist:copy", next); runseq(["template", "dist:scss"], "dist:clean", "dist:copy", next);
}); });
// Watch // Watch
gulp.task("default", ["scss:all", "template"], function () { gulp.task("default", ["scss", "template"], function () {
gulp.watch(paths.scss, ["scss:all"]); gulp.watch(paths.scss, ["scss"]);
}); });

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<title>UXBOX/preview - The Open-Source prototyping tool</title>
<link href="{{& cssfile}}" rel="stylesheet" type="text/css" />
<link rel="icon" href="/images/favicon.png" />
</head>
<body>
<section id="app" tabindex="1"></section>
<section id="lightbox" tabindex="2"></section>
<section id="loader" tabindex="3"></section>
<script src="{{& jsfile}}"></script>
</body>
</html>

View file

@ -0,0 +1,61 @@
// UXBOX STYLES
//#################################################
//
//#################################################
@import 'dependencies/colors';
@import 'dependencies/uxbox-light';
/* @import 'dependencies/uxbox-dark'; */
@import 'dependencies/helpers';
@import 'dependencies/mixin';
@import 'dependencies/fonts';
@import 'dependencies/reset';
@import 'dependencies/animations';
@import 'dependencies/z-index';
//#################################################
// Layouts
//#################################################
@import 'base';
@import 'layouts/main-layout';
@import 'layouts/login';
//#################################################
// Commons
//#################################################
@import 'framework';
//#################################################
// Partials
//#################################################
@import 'partials/main-bar';
@import 'partials/workspace-bar';
@import 'partials/workspace-canvas';
@import 'partials/tool-bar';
@import 'partials/project-bar';
@import 'partials/sidebar';
@import 'partials/sidebar-tools';
@import 'partials/sidebar-element-options';
@import 'partials/sidebar-icons';
@import 'partials/sidebar-layers';
@import 'partials/sidebar-sitemap';
@import 'partials/sidebar-document-history';
@import 'partials/dashboard-bar';
@import 'partials/dashboard-grid';
@import 'partials/user-settings';
@import 'partials/activity-bar';
@import 'partials/library-bar';
@import 'partials/lightbox';
@import 'partials/color-palette';
@import 'partials/colorpicker';
@import 'partials/forms';
@import 'partials/loader';
//#################################################
// Resources
//#################################################
@import 'collection/font-collection';