# Environment setup

**Dependency checklist:**

* Node v8+
* Git
* cli.angular.io
* Nrwl schematics
* Visual studio code
* Visual studio code extensions
* Chrome extension for redux dev tools

**Install / verify the correct Node**

Node version can be checked by running the following command in the terminal.

```
node -v
```

Node download link: [https://nodejs.org/en/](https://nodejs.org/en/)\


**Install / verify the latest version of Git**

Git version can be checked by running the following command in the terminal.

```
git --version
```

Git download link: [https://git-scm.com/downloads](https://git-scm.com/downloads)

**Install Angular CLI**

Angular CLI should be installed globally. Run the following command.

```
npm install -g @angular/cli
```

**Install Nrwl schematics**

Nrwl schematics should be installed globally. Run the following command.

```
npm install -g @nrwl/schematics
```

**Install Visual Studio Code**

Visual Studio Code is the recommended integrated development environment (IDE) for efficient development. Your preferred IDE can be used, but references and extensions will be limited to VS Code.

VS Code download link: [https://code.visualstudio.com/](https://code.visualstudio.com/)

**Install Visual Studio Code extensions**

The following extensions are used to speed up the development process and maintain best practices.

* Angular Essentials: [https://marketplace.visualstudio.com/items?itemName=johnpapa.angular-essentials](https://marketplace.visualstudio.com/items?itemName=johnpapa.angular-essentials)
* Angular Language Service: [https://marketplace.visualstudio.com/items?itemName=Angular.ng-template](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template)
* Indent Rainbow: [https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow)
* ESLint: [https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
* IntelliCode: [https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)
* Prettier: [https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
* Sort Typescript Imports: [https://marketplace.visualstudio.com/items?itemName=miclo.sort-typescript-imports](https://marketplace.visualstudio.com/items?itemName=miclo.sort-typescript-imports)
* vscode-angular-html: [https://marketplace.visualstudio.com/items?itemName=ghaschel.vscode-angular-html](https://marketplace.visualstudio.com/items?itemName=ghaschel.vscode-angular-html)
* GitLens: [https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
* PWABuilder Studio: [https://marketplace.visualstudio.com/items?itemName=PWABuilder.pwa-studio](https://marketplace.visualstudio.com/items?itemName=PWABuilder.pwa-studio)
