zephir-gulp-workflow v3.0.2
zephir-gulp-workflow 3.0.0
Updated version based on the fork of Moritz Jacobs.
The Zephir Gulp Workflow is intended to be highly configurable without having to write a new GULP Workflow everytime. This helps to keep every project setup as easy and neat as possible.
conventions
- config files are located at the root of your
package.json
and are calledgulp-config.js
- sourcemaps are enabled for dev env by default
- es6 via babel and browserify are enabled for a specific task and source folder per default (
babel-preset-env
+ browserstring) - added imagemin options
- uglify is available but not activated by default
Installation
- Create a
package.json
in your project >>npm init
- Install dependencies >>
npm i --save-dev gulp zephir-gulp-workflow
- Create a new
gulpfile.js
and add the following content
require('zephir-gulp-workflow')(require('gulp'));
First run
Run gulp
to create a gulp-config.js
and configure to your liking.
Configuration
extraTasks
Tasks in extraTasks
are special tasks that need the config property runAsTask
. The task will then run as the task defined under runAsTask
but with different configurations and different paths.
combinedTasks
Tasks in combinedTasks
are run in sequence, so if you want parallel execution you would have to put them in another array inside combinedTasks
, e.g.:
combinedTasks: {
default: [["dist", "watch"]], // runs parallel
dist: ["es6", "js", "images", "svg", "css", "copy", "clean"], // runs sequential
}
Usage
Use gulp dist
to do a compile.
Run only gulp
to do a compile and start the watch task.
Environments
Use gulp --env
to define a special environment e.g. gulp --env prod
.
The environemnt can change the output (like sourcemaps, minifying) and output location (e.g. dist/prod/...
).
This behaviour changes based on the config.
Tests
Run tests witch npm test
Run test http server with npm run testd
=> http://localhost:8080, then look at the console.
@todo:
- port to gulp 4?