pages
Version:
AngularJS / Node.js sidekick.
67 lines (39 loc) • 1.39 kB
text/coffeescript
async = require 'async'
notify = require '../lib/notify'
refresh = require '../lib/refresh'
cleanup = require './lib/cleanup'
deps = require './lib/deps'
js = require './lib/js'
css = require './lib/css'
jade = require './lib/jade'
watcher = require './lib/watcher'
bake = (opts, cb) ->
notify 'Bake', opts.notify or "Cookin' up a Pages application for #{process.env.NODE_ENV}..."
global.pages =
opts: opts
assets:
js: []
css: []
global.pages.opts.watch = false if !global.pages.opts.watch
async.series [
Step 1. Remove everything compiled or downloaded.
cleanup
Step 2. Install vendor assets.
deps.install
Step 3. Remove erroneous vendor assets.
deps.cleanup
Step 4. Build the core `app.litcoffee` file based on `pages.litcoffee`.
deps.injectAndBuild
Step 5. Compile CoffeeScripts. Concat/minify applicable to `production` only.
js.build
Step 6. Concat/minify CSS. Applicable to `production` only.
css.build
Step 7. Compile Jade, giving it dependencies to render.
jade.build
Step 8. Watch for changes. Applicable to `development` only.
watcher
], () ->
refresh global.pages.opts.browser
cb()
## Public API ##
module.exports = exports = (opts, cb) -> bake opts, cb