Pavios
An experimental, pluggable build system, built on top of Gulp.
Installation
npm install --save-dev pavios
Pavios is based around the concept of tasks, which are modules that are installed along with pavios
and define gulp tasks.
For Task Users
Simply install a pavios module from npm and add its configuration to a .paviosrc
file in the root of your project or in any directory above your project's node_modules
folder. See the documentation for the rc module used in Pavios for more information.
Config Guide
- Standard config format:
Example
For Task Creators
Pavios provides a pavios.API
object for use in the creation of tasks.
var pavios = ;var gulp = paviosgulp;var API = paviosAPI;var getConfig = APIgetConfig;var gulpModule = ;var config = ; gulp;
In ES6/ES2015:
let gulp API: getConfig = ;let gulpModule = ; let config = ; gulp;
In CoffeeScript:
require 'pavios'gulpModule = require 'gulp-module' config = getConfig 'task' gulptask 'task'-> gulpsrc configsrc pipe gulpModule pipe gulpdest configdest
Config Guide
Default Config
TODO
-
Need something more robust than module.exports.order (it's brittle and requires knowledge of pretty much every Pavios task and what it does)
- Maybe some sort of "beforeFileOperations", "duringFileOperations", "afterFileOperations", "afterStartingServer" thing?
-
Error handling in pavios-jade (errors from gulp-jade aren't caught)
-
Eslint parsers/plugins have to be installed at the pavios-* level instead of the top level. This needs to be fixed because installing something like babel-eslint in node_modules is unsustainable.
-
Coffeelint doesn't detect coffeelint.json for some reason (This is probably not an issue with where the module is, because pavios-eslint detects .eslintrc correctly, and doesn't work with babel-eslint for it)
-
Should the Gulp API be implemented by the Pavios object?
-
But maybe we want to cleanly separate Gulp functionality and Pavios addons.
- We might lose the connection to Gulp.
- Maybe we want to.
- We might lose the connection to Gulp.
-
Doesn't Pavios provide the addons and Gulp the base functionality?
-
pavios = require 'pavios' pavios config = getConfig 'babel' typeCheckstandard config pavioscreateTask 'babel'-> paviossrc 'abc' pipe $ifprod$sourcemapsinit pipe paviosdest 'def'