Перейти к содержимому

Справочник API node:vm

Выполнение скриптов в контекстах совместимости

На этой странице
Open in ChatGPTOpen in Claude

node:vm предоставляет API компиляции скриптов и контекстов в стиле Node.

Контекст не является границей безопасности. Встроенные объекты общие с realm хоста. Для недоверенного кода используйте изоляцию процессов и файловой системы.

ЭкспортНазначение
ScriptСкомпилировать код и выполнить его в этом контексте или в контексте-песочнице.
createContext() / isContext()Превратить объект в контекст и проверить его маркер.
compileFunction()Скомпилировать тело функции.
runInThisContext()Выполнить в текущей глобальной области видимости.
runInContext()Выполнить для объекта-контекста.
runInNewContext()Выполнить для нового объекта-песочницы.
measureMemory()Вернуть Promise с результатом измерения памяти.
constantsКонстанты VM.
const vm = require("node:vm");
const sandbox = { x: 2 };
vm.createContext(sandbox);
vm.runInContext("x + 3", sandbox); // 5

SourceTextModule предоставляет лишь ограниченный жизненный цикл и не обеспечивает полного связывания и выполнения модулей.

См. также

Reference

Status: Full · 80 of 95 suite tests pass (84.2%) · since 1.1.0

Exports

ExportKindStatusNotes
ScriptclassFullrunInThisContext(), runInNewContext()
createContext()functionFullCreates a new execution context (sandbox)
runInNewContext()functionFullCompiles code, creates a new context, and runs the code in that context
runInThisContext()functionFullCompiles and runs code within the current global context
isContext()functionFullReturns 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.

Была ли эта страница полезной?