2014-03-31 13:56:34 +00:00
# Project Setup
This document describes the necessary steps to setup a `bpmn-js` development environment.
## TLDR;
On Linux/Unix? [git ](http://git-scm.com/ ), [NodeJS ](nodejs.org ) and [npm ](https://www.npmjs.org/doc/cli/npm.html ) ready? Check out the small setup script below.
## Manual Steps
Make sure you have [git ](http://git-scm.com/ ), [NodeJS ](nodejs.org ) and [npm ](https://www.npmjs.org/doc/cli/npm.html ) installed before you continue.
### Get Project + Dependencies
The following projects from the [bpmn-io ](https://github.com/bpmn-io ) project on GitHub
* [bpmn-js ](https://github.com/bpmn-io/bpmn-js )
* [diagram-js ](https://github.com/bpmn-io/bpmn-js )
2014-04-03 17:26:00 +00:00
* [bpmn-moddle ](https://github.com/bpmn-io/bpmn-moddle )
2014-03-31 13:56:34 +00:00
* [moddle ](https://github.com/bpmn-io/bpmn-js )
* [moddle-xml ](https://github.com/bpmn-io/bpmn-js )
and clone them into a common directory via
```
git clone git@github.com:bpmn-io/PROJECT_NAME.git
```
### Link Projects
[Link dependent projects ](http://blog.nodejs.org/2011/04/06/npm-1-0-link/ ) between each other to pick up changes immediately.
```
.
├─bpmn-js
│ └─node_modules
│ ├─diagram-js < link >
│ ├─moddle < link >
2014-04-03 17:26:00 +00:00
│ └─bpmn-moddle < link >
├─bpmn-moddle
│ └─node_modules
│ ├─moddle < link >
2014-03-31 13:56:34 +00:00
│ └─moddle-xml < link >
├─diagram-js
├─moddle
└─moddle-xml
└─node_modules
└─moddle < link >
```
#### On Linux
Use [npm-link ](https://www.npmjs.org/doc/link.html ) or `ln -s <target> <link>` .
#### On Windows
Use `mklink /d <link> <target>` [(docs) ](http://technet.microsoft.com/en-us/library/cc753194.aspx ).
### Install Dependencies
Execute `npm install` on each of the projects to grab their dependencies.
### Verify Things are O.K.
Execute `grunt` on any of the projects. Things should be nice.
## Setup via Script
The whole setup can be automated through the following script.
```bash
base=`pwd`
echo cloning repositories
git clone git@github.com:bpmn-io/diagram-js.git > /dev/null
git clone git@github.com:bpmn-io/moddle.git > /dev/null
git clone git@github.com:bpmn-io/moddle-xml.git > /dev/null
2014-04-03 17:26:00 +00:00
git clone git@github.com:bpmn-io/bpmn-js.git > /dev/null
git clone git@github.com:bpmn-io/bpmn-moddle.git > /dev/null
2014-03-31 13:56:34 +00:00
echo done.
echo setup diagram-js
cd $base/diagram-js
npm install > /dev/null
echo setup moddle
cd $base/moddle
npm install > /dev/null
echo setup moddle-xml
cd $base/moddle-xml
mkdir node_modules
ln -s $base/moddle node_modules/moddle
npm install > /dev/null
2014-04-03 17:26:00 +00:00
echo setup bpmn-moddle
cd $base/bpmn-moddle
mkdir node_modules
ln -s $base/moddle node_modules/moddle
ln -s $base/moddle-xml node_modules/moddle-xml
npm install > /dev/null
2014-03-31 13:56:34 +00:00
echo setup bpmn-js
cd $base/bpmn-js
mkdir node_modules
ln -s $base/moddle node_modules/moddle
2014-04-03 17:26:00 +00:00
ln -s $base/bpmn-moddle node_modules/bpmn-moddle
2014-04-01 08:48:26 +00:00
ln -s $base/diagram-js node_modules/diagram-js
2014-03-31 13:56:34 +00:00
npm install > /dev/null
echo all done.
2014-04-03 17:26:00 +00:00
```