What is vm-browserify?
The vm-browserify npm package is a browser shim for Node.js's vm module. It allows you to run scripts in a sandboxed environment within the browser, similar to how you would in Node.js. This can be useful for executing code in a controlled and isolated context.
What are vm-browserify's main functionalities?
Running code in a sandbox
This feature allows you to execute a string of code in a new, isolated context. The sandbox object can be used to pass in and out values from the sandboxed environment.
var vm = require('vm-browserify');
var sandbox = { animal: 'cat' };
vm.runInNewContext('console.log(animal)', sandbox);
Other packages similar to vm-browserify
sandboxed-module
Sandboxed-module is designed to make it easy to require modules with sandboxed globals, timers, and other Node.js features. It is more focused on sandboxing modules rather than arbitrary code execution.
vm-browserify
emulate node's vm module for the browser

example
Just write some client-side javascript:
var vm = require('vm');
window.addEventListener('load', function () {
var res = vm.runInNewContext('a + 5', { a : 100 });
document.querySelector('#res').textContent = res;
});
compile it with browserify:
browserify entry.js -o bundle.js
then whip up some html:
<html>
<head>
<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:
npm install vm-browserify
license
MIT