Add Gulp tasks
This commit is contained in:
@@ -30,6 +30,7 @@ gulp.task("watch", ["dist"], function() {
|
|||||||
gulp.watch("./styles/**/*.css", ["stylesheets"])
|
gulp.watch("./styles/**/*.css", ["stylesheets"])
|
||||||
gulp.watch("./scripts/**/*.js", ["scripts"])
|
gulp.watch("./scripts/**/*.js", ["scripts"])
|
||||||
gulp.watch("./tasks/**/*.js", ["scripts:linting"])
|
gulp.watch("./tasks/**/*.js", ["scripts:linting"])
|
||||||
|
gulp.watch("./tests/**/*.js", ["scripts:linting"])
|
||||||
|
|
||||||
// gulp.watch("./dist/**/*").on("change", server.livereload)
|
// gulp.watch("./dist/**/*").on("change", server.livereload)
|
||||||
})
|
})
|
||||||
|
|||||||
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