Ika*_*aso 3 node.js jasmine jasmine-node
这是jasmine 2.0.0独立项目的一个函数:
function getJasmineRequireObj() {
    if (typeof module !== "undefined" && module.exports) {
        return exports;
    } else {
        window.jasmineRequire = window.jasmineRequire || {};
        return window.jasmineRequire;
    }
}
我想如果我使用标准的require方法,将定义module属性.当我使用VM模块加载此文件时,如下所示模块全局属性是未定义的:
var fs = require('fs');
var vm = require('vm');
var jasmineFile = fs.readFileSync(__dirname + '/jasmine.js');
vm.runInThisContext(src, jasmineFile);
这是VM模块的预期行为还是缺陷?
vku*_*kin 13
这是预期的行为.您的代码在相同的上下文中进行评估,但不在相同的范围内,因此module,exports以及未定义的内容.你可以这样做:
var m = require('module')
var src = 'module.exports = 42'
var res = require('vm').runInThisContext(m.wrap(src))(exports, require, module, __filename, __dirname)
console.log(module.exports)
但这样做没有多大意义,因为它基本上是require做什么的
| 归档时间: | 
 | 
| 查看次数: | 3488 次 | 
| 最近记录: |