68 lines
1.3 KiB
Markdown
68 lines
1.3 KiB
Markdown
# vm-browserify
|
|
|
|
emulate node's vm module for the browser
|
|
|
|
[![testling badge](https://ci.testling.com/substack/vm-browserify.png)](https://ci.testling.com/substack/vm-browserify)
|
|
|
|
# example
|
|
|
|
Just write some client-side javascript:
|
|
|
|
``` js
|
|
var vm = require('vm');
|
|
|
|
$(function () {
|
|
var res = vm.runInNewContext('a + 5', { a : 100 });
|
|
$('#res').text(res);
|
|
});
|
|
```
|
|
|
|
compile it with [browserify](http://github.com/substack/node-browserify):
|
|
|
|
```
|
|
browserify entry.js -o bundle.js
|
|
```
|
|
|
|
then whip up some html:
|
|
|
|
``` html
|
|
<html>
|
|
<head>
|
|
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
|
<script src="/bundle.js"></script>
|
|
</head>
|
|
<body>
|
|
result = <span id="res"></span>
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
and when you load the page you should see:
|
|
|
|
```
|
|
result = 105
|
|
```
|
|
|
|
# methods
|
|
|
|
## vm.runInNewContext(code, context={})
|
|
|
|
Evaluate some `code` in a new iframe with a `context`.
|
|
|
|
Contexts are like wrapping your code in a `with()` except slightly less terrible
|
|
because the code is sandboxed into a new iframe.
|
|
|
|
# install
|
|
|
|
This module is depended upon by browserify, so you should just be able to
|
|
`require('vm')` and it will just work. However if you want to use this module
|
|
directly you can install it with [npm](http://npmjs.org):
|
|
|
|
```
|
|
npm install vm-browserify
|
|
```
|
|
|
|
# license
|
|
|
|
MIT
|