README
Bif
A toolkit for static websites. Not currently maintained, but will be in the future. Check back later or check out Jumpsuit for a great new front-end framework.
Deprecation Notice: The Bif static server is now deprecated in favor of Butler.
Note: If you're migrating from the old Zab CLI, this should be a drop-in replacement. Simply use
bif
instead ofzab
in your terminal.
What is Bif?
Bif is a service for building and managing static websites. It includes a powerful watcher/builder system, and a static server for running your projects locally.
Installation
You need Node on your local machine to run Bif. Install it using NVM for OSX/Linux or NVMW for Windows. Then:
npm install -g bif
or to use as middleware
npm install --save bif
Quick Start
bif new myApp
# answer questions
cd myApp && bif watch
That's it! Your site is now running at http://0.0.0.0:8000
, and will rebuild when you change a file.
Config
The bif.json
config file is automatically created in your project folder when bif new
or bif init
is run. It can be used to customize your project and server.
root
[default:dist
] Sets the root folder of your compiled site (where your index.html lives).server
[default:{}
] The configuration for Butler.data
[default:data.json
] The path to your CMS file, which is used for templates.build
path
[default:src
] The root path to your source files directory. All following paths inbuild
are relative to this path.transforms
An array of browserify transforms you want to use in your build. Usesbabelify
for ES6 support, andenvify
allowing you to use environment variables. ex.["vueify", "coffeeify"]
processor
css
[default:stylus
] Defines the preprocessor for CSS. Can currently be set tostylus
orscss
.
compile
js
[default:scripts/app.js
] Path to your javascript insertion file.css
[default:styles/app.styl
] Path to your css insertion file.html
[default:views
] Path to your views directory.assets
[default:assets
] Path to your assets directory.
watch
js
[default:['scripts/**']
] An array of glob-patterns to watch for changes to javascript files.css
[default:['styles/**']
] An array of glob-patterns to watch for changes to style files.html
[default:['views/**']
] An array of glob-patterns to watch for changes to view files.assets
[default:['assets/**']
] An array of glob-patterns to watch for changes to asset files.
ignore
An array of glob-patterns to ignore while watching files. Default values are dotfiles,node_modules
, andbower_components
. These cannot be overwritten.cdnPrefix
[default: none] Will automatically prefix this url to all assets in your HTML and CSS onbif build
.cdnex
[default: none] A configuration object for Cdnex
Javascript Preprocessing
- Preprocessed with Babel & JSX. ES6 ftw!
- Compiled with Browserify
CSS Preprocessing
- Preprocessed with Stylus or SCSS
- If you want to use vanilla CSS, put it in your assets folder
- More preprocessors to come...
HTML Templating
- Built in support for Jade
- Any files prefixed with an
_
(eg. _layout.jade), will not be compiled - Data from
data.json
will be interpolated into your templates (if you're using Jade) - More templating languages to come...
Middleware
You can use Bif as middleware, but implementation of this is still in progress. Better support and documentation is coming soon.
Help & Contributing
If you need additional help with the CLI, you can run bif --help
for all the available commands, and bif help [command]
for help with a specific command.
To use the cutting-edge version of Bif (from the master branch), you can install with npm install -g zab/bif
, or clone this repo and run cd bif && npm install && npm link
to link it to your global path.
Bif is still in beta, so if you come across a bug or want to submit an additional feature, please create a new issue. We're also happy to review any pull requests!
Testing
npm test
Not fully tested yet, but this will come soon.
Community
If you plan on using Bif, Zab, or just want to chat about static websites or front-end development, join us on Slack.
Copyright & License
Copyright © 2016 Zab · Licensed under the MIT license.