Bitcore and most official submodules work in the browser, thanks to [browserify](http://browserify.org/) (some modules make no sense in the browser, like `bitcore-p2p`).
The easiest and recommended way to use them, is via [Bower](http://bower.io/), a browser package manager, and get the release bundles.
For example, when building an app that uses `bitcore` and `bitcore-ecies`, you do:
```
bower install bitcore
bower install
```
You can also use a `bower.json` file to store the dependencies of your project:
```json
{
"name": "Your app name",
"version": "0.0.1",
"license": "MIT",
"dependencies": {
"bitcore-ecies": "^0.10.0",
"bitcore": "^0.10.4"
}
}
```
and run `bower install` to install the dependencies.
After this, you can include the bundled release versions in your HTML file:
(for a bitcore module, `bitcore-ecies` in the example)
## Development of modules
*Note:* You probably don't want to use this method, but `bitcore-build`, as explained above. This is left here as documentation on what happens under the hood with `bitcore-build`.
When developing a module that will depend on Bitcore, it's recommended to exclude Bitcore in the distributed browser bundle when using browserify and to use the `--external bitcore` parameter. It will produce a smaller browser bundle, as it will only include the JavaScript that is nessessary, and will depend on the Bitcore browser build which is better for distribution.
See the [main file](https://github.com/bitpay/bitcore/blob/master/index.js) for bitcore for a complete list, as well as the [Bitcore Documentation](index.md).
This will output a file `module-name.js` with only the code loaded from `index.js` (bitcore.js will need to be loaded beforehand, which is around 145KB gzipped)