README.md 4.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
# vue-remote-devtools

> This package provides a standalone vue-devtools application, that can be used to debug any Vue app regardless of the environment. Now you can debug your app opened in mobile browser, safari, native script etc. not just desktop chrome or firefox.

### :cd: Installation

Install the package globally:
```bash
npm install -g @vue/devtools
```

Or locally as project dependency:
```bash
npm install --save-dev @vue/devtools
```

### :rocket: Usage

#### Using global package

Once you installed the package globally, run:
```bash
vue-devtools
```

Then add:
```html
<script src="http://localhost:8098"></script>
```

Or if you want to debug your device remotely:
```html
<script>
34 35
  window.__VUE_DEVTOOLS_HOST__ = '<your-local-ip>' // default: localhost
  window.__VUE_DEVTOOLS_PORT__ = '<devtools-port>' // default: 8098
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
</script>
<script src="http://<your-local-ip>:8098"></script>
```

To the `<head>` section of your app. 
**(Don't forget to remove it before deploying to production!)**

`<your-local-ip>` usually looks like this: `192.168.x.x`.

#### Using dependency package

Once you installed the package as project dependency, run:
```bash
./node_modules/.bin/vue-devtools
```

You can also use the global `vue-devtools` to start the app, but you might want to check if the local version matches the global one in this scenario to avoid any incompatibilities.

Then import it directly in your app:
```js
import devtools from '@vue/devtools'
// import Vue from 'vue'
```
> Make sure you import devtools before Vue, otherwise it might not work as expected.

And connect to host:
```js
if (process.env.NODE_ENV === 'development') {
64
  devtools.connect(/* host, port */)
65 66 67
}
```

M
Michał Sajnóg 已提交
68
**host** - is an optional argument that tells your application where devtools middleware server is running, if you debug you app on your computer you don't have to set this (the default is `http://localhost`), but if you want to debug your app on mobile devices, you might want to pass your local IP (e.g. `http://192.168.1.12`).
69

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
**port** - is an optional argument that tells your application on what port devtools middleware server is running. If you use proxy server, you might want to set it to `null` so the port won't be added to connection URL.

#### FAQ:

**1. How to change port devtools server is running on?**

You can change it by setting environment variable before running it:
```
PORT=8000 vue-devtools
```

Then in your app you'll have to set either:
```
window.__VUE_DEVTOOLS_PORT__ = 8000
```

Or update connect method with new port:
```
devtools.connect(/* host */, 8000)
```

**2. How to remotely inspect page on the server?**

For that you can use `ngrok` proxy. You can download it [here](https://ngrok.com/).

Once you start vue-devtools run:
```
ngrok http 8098
```

Then update your host and port accordingly:
```
M
Michał Sajnóg 已提交
102
devtools.connect('https://example.ngrok.io', null)
103 104 105 106 107 108 109 110
```

Make sure to set port to `null` or `false`, because ngrok host already proxies to proper port that we defined in the first command.

**3. How to inspect page served through `HTTPS`?**

For that you can also use ngrok, as it automatically proxies https requests to http. Take a look at question number 2 for instructions.

M
Michał Sajnóg 已提交
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
**4. How to inspect cordova applications?**

Make sure that the page under `http://your-ip:8098` is returning a javascript coode on your device/simulator. If it doesn't - make sure to check your anti-virus or router/firewall settings. If it works - please follow the instructions, and connect to devtools using your IP. For example:

```js
import devtools from '@vue/devtools'
import Vue from 'vue'
// ...

function onDeviceReady () {
  devtools.connect('http://192.168.xx.yy') // use your IP
}

if (window.location.protocol === 'file:') {
  document.addEventListener('deviceready', onDeviceReady, false)
} else {
  onDeviceReady()
}
```

This will only work on `development` build of your app.

133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
### :beers: Development

1. Install all dependencies
```
npm install
```

2. Run:
```
npm run dev
```
This will watch `src` folder and compile files on change

3. Run:
```
npm start
```
This will open electron app with devtools

4. Follow **Usage** section to connect any app to your development version of `vue-remote-devtools`

### :lock: License

[MIT](http://opensource.org/licenses/MIT)