问题标签 [node-vm2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
197 浏览

javascript - VM2 与 Webpack 的使用

我在将 webpack 与使用 vm2 的 typescript 项目一起使用时遇到了问题。webpack --config webpack.config.js给出以下错误:

Terser Invalid function parameter [webpack://./node_modules/source-map-loader/dist/cjs.js!./node_modules/vm2/lib/main.js:1226,1] [index.js] 中的 index.js 错误js:1262,21]

这是我一直在测试的最小复制:

通过使用我的optimization: { minimize: false } }选项,我webpack.config.js能够找到错误的来源。在vm2包源代码中存在此块:

它被 webpacked 为:

这显然失败了。我不确定我还能在这里做什么,是否有可以更改为的配置

我的webpack.config.js

0 投票
1 回答
49 浏览

javascript - 在 Nodejs 应用程序中动态运行用户键入的函数而无需重新启动服务器?

我正在尝试让用户在运行快速服务器的 Node 应用程序中添加自己的代码的可能性。

设想 -

例如,用户单击保存表单并希望进行自我业务验证。这可以用作中间件或只是一些可以在保存之前运行的功能。但挑战在于代码已经构建并且节点处于运行状态。如何使用用户添加的代码并针对某些数据进行验证?

我绝对可以使用 eval 或 new Function 或 vm2 (虽然会隔离事物 - 这是我完全需要的)。但是 eval 和 function 我绝对不想使用。VM2 绝对是一个选择,但在大范围内,它的性能会很差,并且需要时间来执行。

有人使用或从事过类似的工作吗?我绝对可以使用无服务器功能,但如果有多个应用程序,那将变得昂贵。请帮助我了解如何解决?

谢谢。

0 投票
0 回答
11 浏览

node-vm2 - VM2 可选对象冻结

开箱即用的 VM2 提供了非常严格的上下文隔离。包括用代理包裹所有对象并使其冻结

如果只是一个简单的上下文,是否可以选择禁用这种高度受限的隔离。需要隔离吗?