> For the complete documentation index, see [llms.txt](https://en.docs.monaca.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://en.docs.monaca.io/products_guide/migration/phonegap_migration/introduction.md).

# Key Differences

Before migrating your PhoneGap projects into Monaca, you should read through some key differences between PhoneGap and Monaca projects in order to have a seamless migration.

## File and folder structures

File and folder structures of Monaca and PhoneGap projects are quite different:

### PhoneGap project structure

```markup
Project
├── config.xml
├── hooks
├── platforms
├── plugins
└── www
    ├── css
    ├── img
    ├── index.html
    ├── js
    ├── res
    │   ├── icon
    │   └── screen
    ├── spec
    └── spec.html
```

### Monaca project structure

```markup
Project
├── config.xml
├── package.json
├── plugins
├── res
│   ├── android
│   ├── ios
│   └── winrt
└── www
    ├── components
    ├── css
    └── index.html
```

The main differences are `res` folder location and `package.json` file.\
In Monaca project, the default `res` folder is stored in the root folder. But if the `src` attribute of the project's `config.xml` file is set correctly, the default `res` folder is not used. Moreover, `package.json` file is required and used for managing the Cordova plugins.

Because of these differences, when importing a PhoneGap project into Monaca, some files and folders will be changed.

## Build environment

Before getting started with the migration, you may want to know about the supported Cordova versions and build environments in Monaca.

All newly created projects in Monaca will be using the latest supported Cordova version by default. If you want to use a lower version, please [contact us](https://monaca.io/service/index.html).

| Cordova           | Android platform | iOS platform | Windows platform (electron) |
| ----------------- | ---------------- | ------------ | --------------------------- |
| **cordova-9.0.0** | **8.0.0**        | **5.0.1**    | **1.1.1**                   |

For more information about build environments for lower Cordova versions, pleaser refer to[ Supported environments](/environment.md).

## Remarks

When migrating a project into Monaca, there are a few things you should be aware of:

### Some installed plugins may disappear

In Monaca, Cordova plugins are managed by the `package.json` file. If your plugin information is defined in the `config.xml` file, you will need to import them again into Monaca. Please refer to [Importing Cordova plugins](broken://pages/-MfWeAhOiNeOfMv3d_kF#importing-cordova-plugins).

### Using third party Cordova plugins requires a custom debugger

The store version Monaca Debugger (found in Google play or AppStore) includes only the [core Cordova plugins](/reference/core-cordova-plugins.md). If your project contains any third party Cordova plugins besides the core Cordova plugins, you will need to build a custom debugger to test it. Custom debugger will only include the plugins used in the project. Please refer to:

* [Build custom debugger for iOS](/products_guide/debugger/installation/debugger_ios.md#building-a-custom-monaca-debugger)
* [Build custom debugger for Android](/products_guide/debugger/installation/debugger_android.md#build-and-install-a-custom-monaca-debugger)

## Managing the CSS/JavaScript libraries

In the Monaca Cloud IDE, there is a GUI page for managing the CSS/JavaScript libraries. You can see it by going to **Configure → JS/CSS Component Settings**.

![](/files/-Mg9PT2upyH6_crqFSEU)

You can then add the CSS/JavaScript libraries you need. However, this works only if you include the following lines in the `index.html` file:

```markup
<!--Load selected JavaScript libraries-->
<script src="components/loader.js"></script>
<!--Load selected CSS libraries-->
<link rel="stylesheet" href="components/loader.css”>
```

Please note that the `loader.js` file loads also the `cordova.js` file. Therefore, if you are going to include the above lines, you can remove this line:

```markup
<script src="cordova.js"></script>
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://en.docs.monaca.io/products_guide/migration/phonegap_migration/introduction.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.
