node:vm fournit des API de compilation de scripts et de contextes calquées sur
Node.
Un contexte n’est pas une frontière de sécurité. Les intrinsèques sont partagés avec le realm hôte. Utilisez l’isolation des processus et du système de fichiers pour le code non fiable.
| Export | Rôle |
|---|---|
Script | Compiler du code et l’exécuter dans ce contexte ou dans un contexte sandbox. |
createContext() / isContext() | Contextualiser un objet et vérifier son marqueur. |
compileFunction() | Compiler un corps de fonction. |
runInThisContext() | Évaluer dans la portée globale courante. |
runInContext() | Évaluer sur un objet contextualisé. |
runInNewContext() | Évaluer sur un nouvel objet sandbox. |
measureMemory() | Renvoyer une Promise pour un résultat de mesure mémoire. |
constants | Constantes de la VM. |
const vm = require("node:vm");
const sandbox = { x: 2 };
vm.createContext(sandbox);
vm.runInContext("x + 3", sandbox); // 5SourceTextModule n’expose qu’un cycle de vie limité et ne fournit pas la
liaison ni l’évaluation complètes des modules.
Voir aussi
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.