【问题标题】:Nodejs vm2 - how to import scriptsNodejs vm2 - 如何导入脚本
【发布时间】:2018-05-07 22:18:36
【问题描述】:

假设你有脚本 A: 定义了一个库:

class MathFunctions { add(a, b) => { return a+b; } }

你有脚本 B:以某种方式重用 MathFunctions:

const mf = import MathFunctions;
console.log(mf.add(2, 2));

你想在 vm 上下文中执行 B,导入 A。

使用不可信代码的最佳方法是什么?

这里有类似的问题:https://github.com/patriksimek/vm2/issues/121

【问题讨论】:

    标签: node.js sandbox node-vm2 nodevm


    【解决方案1】:

    节点导入系统 (const foo = require('foo');) 通过预处理器运行您的代码,该预处理器将其包装在一个函数中并传入require, module, exports,您也可以通过预处理器运行您的代码来复制该效果。幸运的是,有很多可用的,因为浏览器也缺少模块。因此,任何浏览器的模块预处理器(例如 webpack)都可以解决问题。

    比如new VM().run(webpack('./moduleB.js'))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多