This document describes how the project is set up for web development, including dependency management and how web sources are bundled with the app.
NOTE: The files generated by
grunt
are committed to the repo to streamline the native development workflow. When modifying any web-related aspects of the app, be sure to commit both your changes and the generated files. We hope to eventually look into ways to make the web packaging and integration more flexible and reliable.
The web assets are developed with a NodeJS toolchain. Node is available via Homebrew, but please be sure to install the version declared in .node-version
. Similar to the project's Ruby setup, the web portion uses a version file which can be picked up by a node version manager such as nodenv. This the recommended way to install and manage node installations.
Node package dependencies are managed by npm. See package.json
for detailed information about the node dependencies.
We use grunt to automate tasks related to web development such as dependency management and packaging the sources for integration into the app. A brief overview of the tasks is provided below, but refer to the Gruntfile
for detailed and up-to-date information.
We use jshint to lint the code. Eventually we'll use something like mocha or qunit to test it too...
TODO: describe how it's integrated