Add deploy task
This commit is contained in:
parent
c9427e0c16
commit
93d3f44549
|
@ -1,8 +1,8 @@
|
|||
bower_components
|
||||
node_modules
|
||||
.sass-cache
|
||||
deploy
|
||||
|
||||
# sass-generated css files
|
||||
# stylus-generated css files
|
||||
src/components/**/*.css
|
||||
src/styles/mixins.css
|
||||
src/styles/config.css
|
||||
|
|
97
gulpfile.js
97
gulpfile.js
|
@ -8,7 +8,54 @@ var gulp = require("gulp"),
|
|||
argv = require("yargs").argv,
|
||||
qunit = require("gulp-qunit"),
|
||||
jshint = require("gulp-jshint"),
|
||||
stylish = require("jshint-stylish");
|
||||
stylish = require("jshint-stylish"),
|
||||
Q = require("q"),
|
||||
vulcan = require("vulcanize"),
|
||||
rmdir = require("rimraf"),
|
||||
ncp = require("ncp").ncp,
|
||||
path = require("path"),
|
||||
mkdirp = require("mkdirp");
|
||||
|
||||
function compileCss() {
|
||||
var deferred = Q.defer();
|
||||
|
||||
gulp.src("./src/**/*.styl")
|
||||
.pipe(stylus({use: [nib()]}))
|
||||
.pipe(gulp.dest("./src"))
|
||||
.on("end", function() {
|
||||
deferred.resolve();
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function build(dest) {
|
||||
var deferred = Q.defer();
|
||||
|
||||
vulcan.setOptions({
|
||||
verbose: true,
|
||||
inline: true,
|
||||
csp: true,
|
||||
input: "index.html",
|
||||
output: path.join(dest, "index.html")
|
||||
}, function(err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
vulcan.processDocument();
|
||||
deferred.resolve();
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function lint(files) {
|
||||
return gulp.src(files || "src/**/*.{js,html}")
|
||||
.pipe(jshint.extract("auto"))
|
||||
.pipe(jshint(".jshintrc"))
|
||||
.pipe(jshint.reporter(stylish));
|
||||
}
|
||||
|
||||
gulp.task("stylus", function () {
|
||||
if (argv.watch) {
|
||||
|
@ -18,9 +65,7 @@ gulp.task("stylus", function () {
|
|||
.pipe(gulp.dest("./src"));
|
||||
});
|
||||
} else {
|
||||
gulp.src("./src/**/*.styl")
|
||||
.pipe(stylus({use: [nib()]}))
|
||||
.pipe(gulp.dest("./src"));
|
||||
return compileCss();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -29,13 +74,6 @@ gulp.task("test", function() {
|
|||
.pipe(qunit());
|
||||
});
|
||||
|
||||
function lint(files) {
|
||||
return gulp.src(files || "src/**/*.{js,html}")
|
||||
.pipe(jshint.extract("auto"))
|
||||
.pipe(jshint(".jshintrc"))
|
||||
.pipe(jshint.reporter(stylish));
|
||||
}
|
||||
|
||||
gulp.task("lint", function () {
|
||||
if (argv.watch) {
|
||||
watch({glob: "src/**/*.{js,html}"}, function(files) {
|
||||
|
@ -47,4 +85,41 @@ gulp.task("lint", function () {
|
|||
} else {
|
||||
return lint();
|
||||
}
|
||||
});
|
||||
|
||||
// Deploy a minified/built version of the app to a given destination folder
|
||||
gulp.task("deploy", function() {
|
||||
var dest = argv.dest || "deploy";
|
||||
console.log("Deploying app to " + path.resolve(process.cwd(), dest));
|
||||
Q(function() {
|
||||
console.log("Cleaning up existing target folder...");
|
||||
return Q.nfcall(rmdir, dest);
|
||||
})
|
||||
.then(function() {
|
||||
console.log("Creating target folder structure...");
|
||||
return Q.all([
|
||||
Q.nfcall(mkdirp, path.join(dest, "src")),
|
||||
Q.nfcall(mkdirp, path.join(dest, "lib"))
|
||||
]);
|
||||
})
|
||||
.then(function() {
|
||||
console.log("Compiling css files...");
|
||||
return compileCss();
|
||||
})
|
||||
.then(function() {
|
||||
console.log("Building source...");
|
||||
return build(dest);
|
||||
})
|
||||
.then(function() {
|
||||
console.log("Copying assets...");
|
||||
return Q.all([
|
||||
Q.nfcall(ncp, path.join("src", "crypto.js"), path.join(dest, "src", "crypto.js")),
|
||||
Q.nfcall(ncp, path.join("lib", "sjcl.js"), path.join(dest, "lib", "sjcl.js")),
|
||||
Q.nfcall(ncp, "assets", path.join(dest, "assets"))
|
||||
]);
|
||||
})
|
||||
.then(function() {
|
||||
console.log("Done!");
|
||||
process.exit(1);
|
||||
});
|
||||
});
|
|
@ -9,6 +9,11 @@
|
|||
"gulp-watch": "^0.6.9",
|
||||
"gulp-qunit": "^0.3.3",
|
||||
"gulp-jshint": "^1.8.3",
|
||||
"jshint-stylish": "^0.4.0"
|
||||
"jshint-stylish": "^0.4.0",
|
||||
"q": "^1.0.1",
|
||||
"vulcanize": "^0.4.1",
|
||||
"rimraf": "^2.2.8",
|
||||
"ncp": "^0.6.0",
|
||||
"mkdirp": "^0.5.0"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue