0.0.9 • Published 7 months ago
skulk v0.0.9
Skulk
a group (bundle) of foxes
Design
Configurable support for factor-bundle, separate Browserify instance(s). Drop insert-css (not needed with split-css).
stand-alone client app
- dev: Browserify + watchify, Express serves assets + bundles. tiny-lr provides livereload updates
- prod: Generate bundles
integrated client app
- dev: Browserify + watchify, file serving handled externally, tiny-lr provides livereload updates
- prod: Generate bundles
client + server
- dev: Browserify + watchify, override file serving for bundles, tiny-lr provides livereload updates
- prod: build step once, run provided Express server
API
Implementation
- configured browserify bundles
- devmode / prodmode
- express server - serve static assets - serve bundles from memory - inject (configurable?) livereload script
- livereload server
debug
logging- CSS splitter
- user-supplied config
- get presets from user
- merge supplied presets + config into one config
- get and merge all resulting bundle browserify (preset) configs result: top-level config, array of browserify bundler configs
- create browserify bundlers for each bundle config prod mode:
- execute each bundler once
- bundle output defaults to top-level output dir, but can be overriden dev mode:
- start tiny-lr
- inject watchify (as preset??)
- start (internal) express server if configured to do so - writes happen to memory instead of output dir(s) - inject-livereload middleware - express middleware to serve files
bring-your-own server approach (for GTS) - write to disk as usual - send tiny-lr updates - inject livereloading start script in all bundles - also console.log that this is a debug bundle, and should not run in production
presets/browserify plugins need a way to 'write' files on their own (skulk-supplied)
- skulk write function also sends livereload event/update
Skulk preset
- preset needs it's own config supplied
- preset needs access to global config
Other TODO
- Do something with cryptic Browserify "TypeError: Path must be a string" on missing deps