node:vm proporciona API de compilación de scripts y de contextos con la forma de Node.
Un contexto no es un límite de seguridad. Los intrínsecos se comparten con el realm del host. Use aislamiento de procesos y del sistema de archivos para el código no fiable.
| Exportación | Propósito |
|---|---|
Script | Compila código y lo ejecuta en este contexto o en un contexto sandbox. |
createContext() / isContext() | Contextualiza un objeto y comprueba su marca. |
compileFunction() | Compila el cuerpo de una función. |
runInThisContext() | Evalúa en el ámbito global actual. |
runInContext() | Evalúa contra un objeto contextualizado. |
runInNewContext() | Evalúa contra un nuevo objeto sandbox. |
measureMemory() | Devuelve una Promise con un resultado de memoria. |
constants | Constantes de VM. |
const vm = require("node:vm");
const sandbox = { x: 2 };
vm.createContext(sandbox);
vm.runInContext("x + 3", sandbox); // 5SourceTextModule solo expone un ciclo de vida limitado y no proporciona el enlazado
y la evaluación completos de módulos.
Véase también
Reference
Status: Full · 80 of 95 suite tests pass (84.2%) · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
Script | class | Full | runInThisContext(), runInNewContext() |
createContext() | function | Full | Creates a new execution context (sandbox) |
runInNewContext() | function | Full | Compiles code, creates a new context, and runs the code in that context |
runInThisContext() | function | Full | Compiles and runs code within the current global context |
isContext() | function | Full | Returns whether the given object is a contextified sandbox |
Tests: node-api node:vm: 80 pass, 15 fail, 0 error, 3 skipped. Failing: test-vm-basic.js, test-vm-codegen.js, test-vm-context-dont-contextify.js, test-vm-function-declaration.js, test-vm-global-property-prototype.js, test-vm-global-setter.js, test-vm-harmony-symbols.js, test-vm-module-after-evaluate.js, and 7 more.