2014-03-31 13:56:34 +00:00
# Project Setup
This document describes the necessary steps to setup a `bpmn-js` development environment.
## TLDR;
2015-09-29 09:45:41 +00:00
On Linux, OS X or Windows? [git ](http://git-scm.com/ ), [NodeJS ](nodejs.org ) and [npm ](https://www.npmjs.org/doc/cli/npm.html ) ready? Check out the [setup script section ](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/SETUP.md#setup-via-script ) below.
2014-03-31 13:56:34 +00:00
## Manual Steps
2017-10-04 07:27:54 +00:00
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.
2014-03-31 13:56:34 +00:00
### 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 )
2015-05-08 10:49:54 +00:00
* [diagram-js ](https://github.com/bpmn-io/diagram-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
and clone them into a common directory via
```
2015-09-29 09:45:41 +00:00
git clone git@github.com:bpmn-io/bpmn-js.git
git clone git@github.com:bpmn-io/diagram-js.git
git clone git@github.com:bpmn-io/bpmn-moddle.git
2014-03-31 13:56:34 +00:00
```
### Link Projects
2015-09-29 09:45:41 +00:00
[Link dependent projects ](https://docs.npmjs.com/cli/link ) between each other to pick up changes immediately.
2014-03-31 13:56:34 +00:00
```
.
├─bpmn-js
│ └─node_modules
│ ├─diagram-js < link >
2014-04-03 17:26:00 +00:00
│ └─bpmn-moddle < link >
2014-03-31 13:56:34 +00:00
├─diagram-js
2015-09-29 09:45:41 +00:00
├─bpmn-moddle
2014-03-31 13:56:34 +00:00
```
2015-09-29 09:45:41 +00:00
#### On OS X, Linux
2014-03-31 13:56:34 +00:00
2015-09-29 09:45:41 +00:00
Use [npm-link ](https://docs.npmjs.com/cli/link ) or `ln -s <target> <link>` .
2014-03-31 13:56:34 +00:00
#### 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.
2016-09-01 08:17:50 +00:00
Execute `npm run all` on each project. Things should be fine.
2014-03-31 13:56:34 +00:00
2020-12-16 21:26:10 +00:00
### Setup via Script
2014-03-31 13:56:34 +00:00
2015-09-29 09:45:41 +00:00
The whole setup can be automated through setup scripts for [Linux/OS X ](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.sh ) and [Windows ](https://github.com/bpmn-io/bpmn-js/blob/master/docs/project/setup.bat ).
2020-12-16 21:26:10 +00:00
### Running a single modeler instance
To test changes that you might have made in [bpmn-js ](https://github.com/bpmn-io/bpmn-js ) or in any of the libraries it depends on,
you can run a single test that will instantiate a modeler with all the core modules.
* Open the [file testing the modeler ](https://github.com/bpmn-io/bpmn-js/blob/master/test/spec/ModelerSpec.js#L49 )
* Change
```javascript
it('should import simple process', function() {
```
to
```javascript
it.only('should import simple process', function() {
```
(This ensures only this single test is run)
* Execute `npm run dev`
* Open your browser to < localhost:9876 / debug . html >
* Interact with the modeler and see your changes reflected