# Initial Setup

### **Installing Ionic**

Ionic apps are created and developed primarily through the Ionic [command-line](https://ionicframework.com/docs/faq/glossary#cli) utility. The Ionic CLI is the preferred method of installation, as it offers a wide range of dev tools and help options along the way.

### Install the Ionic CLI <a href="#install-the-ionic-cli" id="install-the-ionic-cli"></a>

Before proceeding, make sure the latest version of [Node.js](https://ionicframework.com/docs/faq/glossary#node) and [npm](https://ionicframework.com/docs/faq/glossary#npm) are installed. See [Environment Setup](https://ionicframework.com/docs/installation/environment) for details. Install the Ionic CLI globally with npm:

```
$ npm install -g ionic
```

### Node & NPM <a href="#node-amp-npm" id="node-amp-npm"></a>

Almost all tooling for modern JavaScript projects is based in [Node.js](https://ionicframework.com/docs/faq/glossary#node). The [download page](https://nodejs.org/en/download/) has prebuilt installation packages for all platforms. We recommend selecting the LTS version to ensure best compatibility.

Node is bundled with [npm](https://ionicframework.com/docs/faq/glossary#npm), the package manager for JavaScript.

To verify the installation, open a new terminal window and run:

```
$ node --version$ npm --version
```

This starter app will run best with node 14.x +&#x20;

Node and NPM version are constantly updated so if you face any issue in setup, or warnings in `npm audit` feel free to contact us.

## Git <a href="#git" id="git"></a>

[Git](https://ionicframework.com/docs/faq/glossary#git) is a distributed version-control system for tracking changes in source code during software development. Although it's not required, we highly recommend using Git for your app development.&#x20;

First, install the command-line utility from the [download page](https://git-scm.com/downloads). For a GUI client, we recommend [SourceTree](https://www.sourcetreeapp.com/). To verify the installation, open a new terminal window and run:

```
$ git --version
```

You can also use **Git CLI** to perform all Git related tasks. A good description of all Git CLI commands is given [here](https://git-scm.com/docs/gittutorial).&#x20;

## Cordova

Cordova is the build environment for this starter. Install latest Cordova using (Cordova-res is required for editing icon and splash when building on devices)

```
$ npm install -g cordova
$ npm install -g cordova-res
```

## Install the app dependencies <a href="#install-the-app-dependencies" id="install-the-app-dependencies"></a>

After you have Ionic installed, you have to install all the dependencies required by the app. These dependencies are listed in `package.json` file in the root of the project. To do this just run the following command using a terminal inside your ionic app folder path.

```
// Move into your project directory
$ cd myApp
// Install dependencies
$ npm install
```

If you are using latest NPM, you might see an audit report after the installation is completed. If you see any vulnerability marked as `high` , please contact us regarding the same.

## Code Editor <a href="#text-editor" id="text-editor"></a>

Personally we use [VS Code](https://code.visualstudio.com/) , however, many people like [Atom](https://atom.io/). You are free to choose any code editor you like.&#x20;

## Run the App <a href="#run-the-app" id="run-the-app"></a>

Now we have everything installed, we can test our Ionic App.

Go to[ Running the App](/apps/ionic-4-full-app/running-the-app.md) section to see how to do it.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enappd-apps.gitbook.io/apps/ionic-4-full-app/set-up-the-development-environment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
