私はモカに簡単なテストケースを持っていますが、それは非常に異なる結果をもたらします:
const body: string = `
var moment = require('moment');
setInterval(function(){
console.log(moment().unix());
}, 2000)
`
const vm = new NodeVM({
console: 'redirect',
require: {
external: true,
root: process.cwd()
}
})
vm.run(body)
vm.on('console.log', function(consoleMessage){
console.log('from event', consoleMessage)
})
describe('Vanilla Script Test', function () {
it('should return a console log of a unix from moment', function (done) {
const body: string = `
var moment = require('moment');
setInterval(function(){
console.log(moment().unix());
}, 2000)
`
const vm = new NodeVM({
console: 'redirect',
require: {
external: true,
root: process.cwd()
}
})
vm.run(body)
vm.on('console.log', function(consoleMessage){
done()
})
})
})
VMError: You must specify script path to load relative modules.
vm.run(body, 'myFile.js')
のように、ファイル名をvm.run
に渡すと、正常に機能します。
この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。
最も参考になるコメント
vm.run(body, 'myFile.js')
のように、ファイル名をvm.run
に渡すと、正常に機能します。