1 | # vm-browserify
|
2 |
|
3 | emulate node's vm module for the browser
|
4 |
|
5 | [![Build Status](https://travis-ci.org/browserify/vm-browserify.svg?branch=master)](https://travis-ci.org/browserify/vm-browserify)
|
6 |
|
7 | # example
|
8 |
|
9 | Just write some client-side javascript:
|
10 |
|
11 | ``` js
|
12 | var vm = require('vm');
|
13 |
|
14 | window.addEventListener('load', function () {
|
15 | var res = vm.runInNewContext('a + 5', { a : 100 });
|
16 | document.querySelector('#res').textContent = res;
|
17 | });
|
18 | ```
|
19 |
|
20 | compile it with [browserify](http://github.com/substack/node-browserify):
|
21 |
|
22 | ```
|
23 | browserify entry.js -o bundle.js
|
24 | ```
|
25 |
|
26 | then whip up some html:
|
27 |
|
28 | ``` html
|
29 | <html>
|
30 | <head>
|
31 | <script src="/bundle.js"></script>
|
32 | </head>
|
33 | <body>
|
34 | result = <span id="res"></span>
|
35 | </body>
|
36 | </html>
|
37 | ```
|
38 |
|
39 | and when you load the page you should see:
|
40 |
|
41 | ```
|
42 | result = 105
|
43 | ```
|
44 |
|
45 | # methods
|
46 |
|
47 | ## vm.runInNewContext(code, context={})
|
48 |
|
49 | Evaluate some `code` in a new iframe with a `context`.
|
50 |
|
51 | Contexts are like wrapping your code in a `with()` except slightly less terrible
|
52 | because the code is sandboxed into a new iframe.
|
53 |
|
54 | # install
|
55 |
|
56 | This module is depended upon by browserify, so you should just be able to
|
57 | `require('vm')` and it will just work. However if you want to use this module
|
58 | directly you can install it with [npm](http://npmjs.org):
|
59 |
|
60 | ```
|
61 | npm install vm-browserify
|
62 | ```
|
63 |
|
64 | # license
|
65 |
|
66 | MIT
|