我正在使用以下代码评估nodejs
中的javascript
捆绑源代码
const javascriptCode = "..."
const javascriptSourceMap = "..."
const wrapper = NativeModule.wrap(javascriptCode);
const script = new vm.Script(wrapper, {
displayErrors: true
});
script.runInNewContext();
当源代码中有错误时,我会得到这样的错误,因为没有提供源映射
ReferenceError: a is not defined
at VueComponent.testSomething (evalmachine.<anonymous>:43112:7)
at VueComponent.testSomethingAgain (evalmachine.<anonymous>:43109:12
如何向VM提供源映射,以便我可以获得正确的文件名而不是evalmachine.<anonymous>
?
提前感谢
尝试
require('vm').runInThisContext('console.log(2);ninvalidJsHere ?= 1;', 'foobar.js');
然后你得到
foobar.js:2
invalidJsHere ?= 1;
^
SyntaxError: Unexpected token =
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)