- Install [Node.js](https://nodejs.org/en/) version 6 or later.
- Install [Node.js](https://nodejs.org/en/) version 6.3.1 or later.
- Install local dependencies with `npm install`.
- Install local dependencies with `npm install`.
- Install gulp globally with `npm install -g gulp`.
- Install gulp globally with `npm install -g gulp-cli`.
- Build the project to the `./dist/` folder with `gulp build`.
- Build the project to the `./dist/` folder with `gulp build`.
- Optionally, to rebuild on file changes, run `gulp dev`.
- Optionally, to rebuild on file changes, run `gulp dev`.
- To package .zip files for distribution, run `gulp zip`, or run the full build & zip with `gulp dist`.
Uncompressed builds can be found in `/dist`, compressed builds can be found in `/builds` once they're built.
## Architecture
## Architecture
@ -18,19 +21,6 @@
npm install
npm install
```
```
### Developing with Gulp
We're using an experimental version of `gulp-cli`, so if you have the old version of gulp, you'll need to uninstall it, `npm uninstall -g gulp`, and install this one instead:
```bash
npm install gulpjs/gulp-cli#4.0 -g
```
After that, you can just:
```bash
gulp dev
```
#### In Chrome
#### In Chrome
Open `Settings` > `Extensions`.
Open `Settings` > `Extensions`.
@ -39,12 +29,26 @@ Check "Developer mode".
At the top, click `Load Unpacked Extension`.
At the top, click `Load Unpacked Extension`.
Navigate to your `metamask-plugin/dist` folder.
Navigate to your `metamask-plugin/dist/chrome` folder.
Click `Select`.
Click `Select`.
You now have the plugin, and can click 'inspect views: background plugin' to view its dev console.
You now have the plugin, and can click 'inspect views: background plugin' to view its dev console.
#### In Firefox
Go to the url `about:debugging`.
Click the button `Load Temporary Add-On`.
Select the file `dist/firefox/manifest.json`.
You can optionally enable debugging, and click `Debug`, for a console window that logs all of Metamask's processes to a single console.
If you have problems debugging, try connecting to the IRC channel `#webextensions` on `irc.mozilla.org`.
For longer questions, use the StackOverfow tag `firefox-addons`.
### Developing on UI Only
### Developing on UI Only
You can run `npm run ui`, and your browser should open a live-reloading demo version of the plugin UI.
You can run `npm run ui`, and your browser should open a live-reloading demo version of the plugin UI.
@ -85,7 +89,7 @@ You can run the linter by itself with `gulp lint`.
0. Update the version in `app/manifest.json` and the Changelog in `CHANGELOG.md`.
0. Update the version in `app/manifest.json` and the Changelog in `CHANGELOG.md`.