RED Boilerplate
RED Interactive's boilerplate to initialize common projects.
Features
- Modular hierarchy.
- Auto-renaming of project variables.
- Support for both Django-based and static-based projects.
Requirements
- node 0.8.4+
brew update && brew upgrade node
- npm 1.1.45+
npm update npm -g
- grunt 0.3.11+
npm install grunt -g
How to use
Creating a project
Using the rbp NPM module
npm install rbp -g
rbp new sampleProjectName
Standalone
git clone https://github.com/ff0000/red-boilerplate.git
grunt start
Usage
Run grunt --help
for a list of available tasks.
grunt start
Initialize the project. This is required before running any other task. The task will ask for:
- Your project's title
- Your project's namespace
- A list of available plugins to install
grunt install
Install a plugin after project initialization. Use via grunt install:plugin
grunt build
Builds your project. Functionality varies based on installed plugins.
grunt watch
Watch your project for file changes. Functionality varies based on installed plugins.
Available plugins
- Caboose - RED Interactive's internal SASS + Compass framework
- JSHint - Lint your JavaScript with JSLint
- RED Start - Easy creation of Django projects and applications based the layout used at RED Interactive Agency.
- Rosy - An inheritable / extendable JavaScript framework.
- Statix - Statix is a static website generator.
Creating a plugin
You must create a plugin branch in order to add a plugin to RBP. The plugin branch contains a required package.json
file, along with any RBP-specific files that are not part of your plugin's git repository.
Note that you do not have to target a git repository. Plugins can be self-contained within the plugin branch itself. It's an option you should use if it makes more semantic sense than creating a new git repository.
Check out this repository, then:
git checkout --orphan plugins/sample-plugin-name
git rm -rf .
package.json
Each plugin must include its own package.json
file. RBP will read through the parameters and perform the appropriate steps to import the plugin. For reference, take a look at Caboose's package.json
.
common parameters
repository
(optional): An object containing the repo type, the target branch and the repo url.dependencies
(optional): An object containing anynpm
dependencies.scripts.install
(optional): A parameter containing any scripts to run on plugin installconfig.scope
(optional): A parameter to scope your plugin to a specified directory.