Phantomjs Require和import查找模块,但proxyquireify没有?
如问题所述,在以下情况下,模块的要求/导入工作正常:Phantomjs Require和import查找模块,但proxyquireify没有?,phantomjs,ecmascript-6,karma-jasmine,babeljs,proxyquire,Phantomjs,Ecmascript 6,Karma Jasmine,Babeljs,Proxyquire,如问题所述,在以下情况下,模块的要求/导入工作正常: const Session = require('../session.js').default; 或 但是我想替换session.js中所需的模块,所以我尝试在Proxyquireify测试中这样做: const proxyquire = require('proxyquireify')(require); const someStub = () => { return {}; }; someStub['@noCallThru']
const Session = require('../session.js').default;
或
但是我想替换session.js中所需的模块,所以我尝试在Proxyquireify测试中这样做:
const proxyquire = require('proxyquireify')(require);
const someStub = () => { return {}; };
someStub['@noCallThru'] = true;
const Session = proxyquire('../session.js', {
'some': someStub
}).default;
然后我得到一个错误,指出找不到模块“../session.js”
PhantomJS 1.9.8 (Linux 0.0.0) ERROR
Error: Cannot find module '../session.js'
我的业力配置如下:
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['browserify', 'jasmine'],
files: [
'spec/**/*Spec.js'
],
exclude: [
'spec/**/PlayerSpec.js'
],
preprocessors: {
'spec/**/*Spec.js': ['browserify']
},
browserify: {
debug: true,
transform: ['babelify']
},
reporters: ['progress', 'dots'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: false,
concurrency: Infinity
})
};
有什么不对劲吗?你还需要更多的信息吗?刚刚偶然发现了同样的问题。 注意到proxyquireify由于某种原因没有在
proxyquire
调用旁边插入require
调用,所以我只是自己做了,至少现在是这样。
尝试使用类似以下内容:
require('../session.js');
const Session = proxyquire('../session.js', ...);
require('../session.js');
const Session = proxyquire('../session.js', ...);