node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »

octavius

Octavius project

This is a simple Node.js project that use Gulp for precompile all assets:

  • Jade
  • SCSS with Autoprefixer
  • CoffeeScript
  • Generated iconsfont
  • Full Bower integration
  • Organize folder structure (copying fonts, sounds etc)
  • Production mode with minified assets
  • Express server for standalone static sites

Main features

  • Easy installation and ready to work after 3 commands
  • CoffeeScript based Gulpfile
  • Useful Gulpfiles structure with tasks, utils etc
  • Full bower support (Automatic concat and optimize bower components from bower.js)
  • BrowserSync support with *.xip.io external link (no need Chrome extension)

Requirements

  • *nix like OS (Mac OS is recommended)
  • Homebrew (Mac OS) or your operating system package manager
  • node.js as main engine
  • npm as node.js package manager

Installation (Mac OS)

Node.js

brew install node

Node Package Manager (NPM)

Note: strongly unrecommended to install NPM via Homebrew, because there may be problems with access permissions

curl -L https://npmjs.com/install.sh | sh

Install required NPM packages

npm install -g octavius

Work with Octavius

Start Octavius

octavius ### Check Octavius version octavius -v or octavius --version

Extend and override Octavius tasks

Octavius supports custom tasks. All you need is create octavius folder in your application and add tasks folder inside it. After that you can create your own tasks which extends core Octavius Task Class (or any existed Task). Here is example of simple sounds copy task:

CopyTask = require "#{__base}/core/tasks/copy"
 
class SoundsTask extends CopyTask
  _paths:
    destination: 'sounds'
 
module.exports = SoundsTask

After restart Octavius your custom task will be added into Tasks stack.

Bower components installation

All bower components automatically concatenates into one file libraries.js. Gulp get main file of each component by its 'main' attribute in bower.json. So if you want automatically attach new component to your project you shoud do it with this command:

bower install backbone --save

Important! Octavius does not find your component without dependency in bower.json. Flag --save means that the information about the component will be included in the main bower.json file.

Production mode

You can run Octavius in production mode with this simple environment variable:

PRODUCTION=true

Express server

Octavius can run server on specified port with this environment variable:

PORT=8888

Now you can see your website without BrowserSync with this address:

http://localhost:8888/

It is very useful for Cloud Services, for example, Heroku. Just add package.json with this content in your project's root directory:

{
  "name": "Project Name",
  "version": "1.0.0",
  "description": "Project description",
  "scripts": {
    "start": "octavius"
  },
  "dependencies": {
    "octavius": "^1.1.4"
  },
  "engines": {
    "node": "5.0.0"
  }
}
 

and push your project to heroku master branch.