AppSuite:GettingStartedWithGrunt

From Open-Xchange
Getting started with grunt

Node

Linux

Install the default nodejs of your distribution via your favourite package/ports manager and you are good to go.

Windows

Head to the node.js site and download and install the latest version. It is recommended to restart after the installation, as paths may not be up-to-date.

Mac OS X

We strongly encourage you to use homebrew. Make sure you have checked your homebrew installation with brew doctor.

Install node via brew install node.

Make sure you don't sudo anything related to node. If you think you have to, you are doing something wrong and are probably dealing with a broken homebrew/macports installation! If this is the case, the easiest way of resolving this is completely deleting the homebrew (and if present macports) directories and (re)installing homebrew.

The default system's max opened file limit in mac os x is very low (256), in order to use grunt watch, it needs to be increased.

You can either set this in your shell via ulimit -n 8192 to a sensible value or you can set it permanently by adding

limit maxfiles 8192 20480

to /etc/launchd.conf.

Grunt & Bower

With npm install -g bower grunt-cli you can install the global npm dependencies needed for grunt and bower.

Installing node dependencies for OX Appsuite Frontend development

Change to the ui directory of your git workdirectory and run npm install. Make sure, you have got the git binary in your path. (This is sometimes a problem on windows, make sure to activate the option to put git into your path during msys-git installation. TODO: more detail)

Local configuration

You can override some options on your local build environment by creating the file grunt/local.conf.json. See grunt/local.conf.default.json as a template.

Hint: copy the default file to grunt/local.conf.json to get started.

appserver

If you want to use the proxy function of the appserver, at least the server-variable needs to be configured.

{

   appserver: {
       server: 'http://url.to.your.ser/appsuite/',
       verbose: ['all']
   }

}