Add Gulp tasks
This commit is contained in:
5
tasks/clean.js
Normal file
5
tasks/clean.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var rimraf = require("rimraf")
|
||||
|
||||
module.exports = function() {
|
||||
rimraf.sync("./dist")
|
||||
}
|
||||
18
tasks/options.js
Normal file
18
tasks/options.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* parses cli arguments as options
|
||||
*/
|
||||
var options = require("minimist")(process.argv.slice(2))
|
||||
var defaults = {
|
||||
plumber: true,
|
||||
minify: false
|
||||
}
|
||||
// set some defaults options depending on some flags
|
||||
if (options.production) {
|
||||
defaults.plumber = false
|
||||
defaults.minify = true
|
||||
}
|
||||
|
||||
options.plumber = options.plumber === undefined ? defaults.plumber: options.plumber
|
||||
options.minify = options.minify === undefined ? defaults.minify: options.minify
|
||||
|
||||
module.exports = options
|
||||
16
tasks/publish.js
Normal file
16
tasks/publish.js
Normal file
@@ -0,0 +1,16 @@
|
||||
var gulp = require("gulp")
|
||||
var ghPages = require("gulp-gh-pages")
|
||||
|
||||
/**
|
||||
* publish task
|
||||
*
|
||||
* publish build in the gh-pages branch
|
||||
*/
|
||||
module.exports = function() {
|
||||
return gulp.src("./dist/**/*")
|
||||
.pipe(ghPages({
|
||||
remoteUrl: "git@github.com:MoOx/pjax.git",
|
||||
branch: "gh-pages",
|
||||
cacheDir: __dirname + "/../.publish"
|
||||
}))
|
||||
}
|
||||
24
tasks/scripts-linting.js
Normal file
24
tasks/scripts-linting.js
Normal file
@@ -0,0 +1,24 @@
|
||||
var gulp = require("gulp")
|
||||
var opts = require("./options")
|
||||
var util = require("gulp-util")
|
||||
var plumber = require("gulp-plumber")
|
||||
var jscs = require("gulp-jscs")
|
||||
var jshint = require("gulp-jshint")
|
||||
|
||||
/**
|
||||
* task scripts:linting
|
||||
*
|
||||
* jshint + jscs
|
||||
*/
|
||||
module.exports = function() {
|
||||
return gulp.src([
|
||||
"./src/scripts/**/*.js",
|
||||
"!./src/scripts/lib/**/*.js",
|
||||
"./tasks/**/*.js",
|
||||
"./tests/**/*.js",
|
||||
])
|
||||
.pipe(opts.plumber ? plumber(): util.noop())
|
||||
.pipe(jscs())
|
||||
.pipe(jshint())
|
||||
.pipe(jshint.reporter("jshint-stylish"))
|
||||
}
|
||||
27
tasks/scripts.js
Normal file
27
tasks/scripts.js
Normal file
@@ -0,0 +1,27 @@
|
||||
var gulp = require("gulp")
|
||||
var util = require("gulp-util")
|
||||
var plumber = require("gulp-plumber")
|
||||
var browserify = require("gulp-browserify")
|
||||
|
||||
var opts = require("./options")
|
||||
var transforms = [
|
||||
// "jadeify",
|
||||
// "debowerify",
|
||||
// "decomponentify",
|
||||
// "deglobalify",
|
||||
// "es6ify"
|
||||
]
|
||||
if (opts.minify) {
|
||||
transforms.push("uglifyify")
|
||||
}
|
||||
|
||||
module.exports = function() {
|
||||
return gulp.src("./src/scripts/*.js")
|
||||
.pipe(opts.plumber ? plumber(): util.noop())
|
||||
.pipe(browserify({
|
||||
transform: transforms,
|
||||
debug: opts.production !== undefined
|
||||
}
|
||||
))
|
||||
.pipe(gulp.dest("./dist/scripts/"))
|
||||
}
|
||||
32
tasks/server.js
Normal file
32
tasks/server.js
Normal file
@@ -0,0 +1,32 @@
|
||||
var gulpUtil = require("gulp-util")
|
||||
var connect = require("connect")
|
||||
var connectLivereload = require("connect-livereload")
|
||||
var livereload = require("gulp-livereload")
|
||||
var opn = require("opn")
|
||||
|
||||
var livereloadServer
|
||||
var ports = {
|
||||
web: 2402,
|
||||
livereload: 2403
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
start: function() {
|
||||
livereloadServer = livereload(ports.livereload)
|
||||
|
||||
var app = connect()
|
||||
.use(connectLivereload({port: ports.livereload}))
|
||||
.use(connect.static("./dist/"))
|
||||
|
||||
require("http").createServer(app)
|
||||
.listen(ports.web)
|
||||
.on("listening", function() {
|
||||
gulpUtil.log("Started connect web server on http://localhost:" + ports.web + " and livereload server on http://localhost:" + ports.livereload)
|
||||
})
|
||||
|
||||
opn("http://localhost:" + ports.web)
|
||||
},
|
||||
livereload: function(file) {
|
||||
livereloadServer.changed(file.path)
|
||||
}
|
||||
}
|
||||
6
tasks/static.js
Normal file
6
tasks/static.js
Normal file
@@ -0,0 +1,6 @@
|
||||
var symlink = require("gulp-symlink")
|
||||
|
||||
gulp.task("static", function() {
|
||||
return gulp.src("./src/static/*")
|
||||
.pipe(symlink("./dist/"))
|
||||
})
|
||||
44
tasks/stylesheets.js
Normal file
44
tasks/stylesheets.js
Normal file
@@ -0,0 +1,44 @@
|
||||
var gulp = require("gulp")
|
||||
var opts = require("./options")
|
||||
var util = require("gulp-util")
|
||||
var plumber = require("gulp-plumber")
|
||||
var rework = require("gulp-rework")
|
||||
var reworkPlugins = {
|
||||
imprt: require("rework-npm"),
|
||||
// parent: require("rework-parent"),
|
||||
// breakpoints: require("rework-breakpoints"),
|
||||
vars: require("rework-vars"),
|
||||
calc: require("rework-calc"),
|
||||
// colorFn: require("rework-color-function"), // Tab Atkins's proposal color function in CSS
|
||||
// hexAlpha: require("rework-hex-alpha"), // use 4-digit or 8-digit hex colors with alpha channels
|
||||
// inline: require("rework-plugin-inline"),
|
||||
// ieLimits: require("rework-ie-limits"),
|
||||
// remFallback: require("rework-rem-fallback"),
|
||||
// clearfix: require("rework-clearfix"),
|
||||
}
|
||||
var autoprefixer = require("gulp-autoprefixer")
|
||||
|
||||
module.exports = function() {
|
||||
return gulp.src("./src/styles/*.css")
|
||||
.pipe(opts.plumber ? plumber(): util.noop())
|
||||
.pipe(rework(
|
||||
reworkPlugins.imprt("./src/css"),
|
||||
rework.colors(),
|
||||
rework.references(),
|
||||
// reworkPlugins.parent,
|
||||
// reworkPlugins.breakpoints,
|
||||
reworkPlugins.vars(),
|
||||
reworkPlugins.calc,
|
||||
//reworkPlugins.colorFn,
|
||||
//reworkPlugins.hexAlpha,
|
||||
//reworkPlugins.inline,
|
||||
//reworkPlugins.ieLimits,
|
||||
//reworkPlugins.remFallback,
|
||||
// reworkPlugins.clearfix,
|
||||
// rework.ease(),
|
||||
// rework.extend(),
|
||||
{sourcemap: !option.minify}
|
||||
))
|
||||
.pipe(autoprefixer())
|
||||
.pipe(gulp.dest(paths.dist.stylesheets))
|
||||
}
|
||||
Reference in New Issue
Block a user