がvm.runInThisContext()
を使用して、非常に単純な例です:あなたがグローバルを使用したくない場合は、あなたが達成することができ、
const vm = require('vm');
let code = `
exports['default'] = function() {
console.log('hello world');
}
`
global.exports = {}; // this is what `exports` in the code will refer to
vm.runInThisContext(code);
global.exports.default(); // "hello world"
かeval
を使用して似たような:
let sandbox = {};
let wrappedCode = `void function(exports) { ${ code } }(sandbox)`;
eval(wrappedCode);
sandbox.default(); // "hello world"
どちらの方法は、彼らは両方の任意のコードを実行できるようになりますので、あなたがそれに供給しているコードは、「安全」であることを前提としています。