【问题标题】:Require and import finds module, but proxyquireify does not?Require 和 import 找到模块,但 proxyquireify 没有?
【发布时间】:2023-03-19 09:44:01
【问题描述】:

正如问题所述,在这些情况下,模块的要求/导入工作正常:

const Session = require('../session.js').default;

import Session from '../session.js');

但我想替换 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
  })
};

可能出了什么问题?您需要更多信息吗?

【问题讨论】:

    标签: phantomjs ecmascript-6 karma-jasmine babeljs proxyquire


    【解决方案1】:

    刚刚偶然发现了同样的问题。 注意到 proxyquireify 出于某种原因没有在 proxyquire 旁边注入 require 调用,所以我最终只是自己做,至少现在是这样。 尝试使用这样的东西:

    require('../session.js');
    const Session = proxyquire('../session.js', ...);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 2022-01-17
      • 2017-10-11
      • 2016-03-15
      • 2019-08-10
      • 2020-09-27
      • 2013-08-10
      相关资源
      最近更新 更多