gulp-shenanigans
Unified Gulp tasks for FullScreenShenanigans projects.
Why?
There are over two dozen repositories in the FullScreenShenanigans organization.
This unifies common build logic and can be updated more easily than editing each individual repository.
Updates can be brought in using npm update.
shenanigans.json
gulp-shenangigans is configured a project's shenanigans.json.
The settings match the IProjectSchema interface in src/definitions.ts.
Common Tasks
When working on a TypeScript project, use gulp src:tsc to just run the TypeScript compiler.
Use gulp watch to trigger that whenever a file changes.
Tasks in Detail
default
The default task runs src, lib, test, docs, and any custom task groups in order.
src
Compiles source files in-place in the /src folder.
src:tsc- Runs the TypeScript compiler on source.tsfiles in-place.src:tslint- Runs TSLint on source.tsfiles.
Sub-tasks included in the web group:
src:scss- Runs the Sass compiler on source.scssfiles in-placesrc:scssLint- Runs scss-lint on source.scssfiles.
lib
Compiles source files into the /lib folder.
lib:tsc- Runs the TypeScript compiler on source.tsfiles to create/liboutput.
Sub-tasks included in the web group:
lib:copy- Copies web resource files into the/libfolder.lib:cssMin- Minifies CSS from/srcinto the/libfolder.lib:html- Minifies HTML from/srcinto the/libfolder.
test
Creates test runners and runs them in the /test folder.
test:setupHtml- Creates anindex.htmlthat can run tests.test:setupUtilities- Copies configuration and utility files into the project directory.test:setupScripts- Compiles test .ts files in-place.test:run- Runs tests.
docs
Generates HTML documentation under docs/ based on source file comments.
docs:typedoc