For development, you will need Docker (for Couchbase) and Node.js installed on your environement. And please use the appropriate Editorconfig plugin for your Editor (not mandatory).
Install docker for desktop base on your machine type.
-
Get the couchbase docker image/container
docker run -d --name db -p 8091-8094:8091-8094 -p 11210:11210 couchbase
-
Next, visit
http://localhost:8091
on the host machine to see the Web Console to start Couchbase Server setup. -
Accept the defaults. Remember: The username and password. (Need to set as env variables to access the bucket).
-
Create a bucket called
example
.
Node is really easy to install & now include NPM. You should be able to run the following command after the installation procedure below.
$ node --version
v0.10.24
$ npm --version
1.3.21
You will need to use a Terminal. On OS X, you can find the default terminal in
/Applications/Utilities/Terminal.app
.
Please install Homebrew if it's not already done with the following command.
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
If everything when fine, you should run
brew install node
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Just go on official Node.js website & grab the installer.
Also, be sure to have git
available in your PATH, npm
might need it.
$ git clone https://github.com/campbelldgunn/profile-store.git
$ cd profile-store
$ npm install
If on OS X, then export USERNAME="couchbase username"
and export PASSWORD="couchbase password
.
If on Windows then use SET.
$ npm start
$ npm run build
Some packages usages might change so you should run npm prune
& npm install
often.
A common way to update is by doing
$ git pull
$ npm prune
$ npm install
To run those 3 commands you can just do
$ npm run pull
Note: Unix user can just link the git-hooks/post-merge
:
$ npm run create-hook-symlinks
This hook will npm prune && npm install
each time you git pull
something if the package.json
has been modified.
This hook will just ensure you will commit something not broken bye pruning npm packages not in the package.json
& eventually reinstall missings/not correctly removed packages.
Then it will try a production build.
- JSHint is used to prevent JavaScript error.
- JSCS is used to check coding conventions.
- Browserify to handle allow us to write our client-side scripts with es6 syntax thanks to es6ify.
The app embed for development a static connect server with livereload plugged. So each time you start the app, you get automatic refresh in the browser whenever you update a file.