#Shoreline - A Google Closure Project Template
Google Closure is a suite of tools for creating advanced JavaScript software. Unfortunately, Closure's complexity makes it very difficult to even start a project. That's where Shoreline comes in.
The following commands will install Shoreline and all dependencies.
- $ git clone [email protected]:metamolecular/shoreline.git
- $ cd shoreline
- $ git submodule init
- $ git submodule update
- $ npm install jake
For a complete list of Jake tasks:
$ jake -T
Shoreline's built-in Jake task include:
$ jake
Builds your project's dependency file. Before testing a project in uncompiled mode, and after modifying the dependency tree in your project, you'll need to use this task.
$ jake compile
Compiles your project's source using aggressive optimizations. The result is a minified, obfuscated, single file created in your project's build directory.
$ jake autospec
On Macs running Safari, this task will automatically detect file changes and re-run the Jasmine test suite.
$ jake clean
Removes dependencies and compiled JavaScript.
Open the file specs/suite.html in any browser.
Open the file html/index.html in any browser.
Shoreline uses these tools in addition to Closure:
- Jasmine. The Behavior-driven development testing framework for JavaScript. Installed with commands 3 & 4 under Installation.
- Node.js Server-side JavaScript environment.
- Jake. The JavaScript build system based on Node.js. Installed with command 5 under Installation.
Shoreline follows the JavaScript Style Guide published by Google.
Google regularly updates Closure via SVN. To keep current with the latest:
- $ cd lib/closure.js
- $ git checkout master
- $ git pull
- $ cd ../..
For information on creating and maintaining dependencies through Git, see Chris Jean's description. For information on setting up your own Git clone from the Closure SVN repository, see Fork and synchronise Google Code Subversion repository into GitHub.
Copyright (C) 2007-2011 Metamolecular, LLC. All rights reserved. Licensed under the MIT License. See the file 'LICENSE' for details.