gpt4 book ai didi

node.js - 如何防止模块在 NodeJS 的生产中加载?

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:05 24 4
gpt4 key购买 nike

根据问题标题,我有一个只应在测试中使用的模块,如何防止它在生产中使用?

最佳答案

看起来您正在尝试模拟 NodeJS 中的某些模块以用于测试用例。

不是有条件地导入,更好的方法是有条件地导出真实或模拟对象。

import mockModule from './mockModule';
import realModule from './realModule';

const exported = (CONDITION) ? mockModule : realModule;
export default exported;

此外,您可能希望为您的用例导出一些空对象,而不是 mockModule。像这样的东西:

const exported = (CONDITION)? {} : realModule;

CONDITION 用于检查测试是否正在运行可能会根据某些环境变量或您的测试套件而有所不同。例如,对于摩卡咖啡,您可以使用:

var isInTest = typeof global.it === '函数';

来源:How to detect if a mocha test is running in node.js?

此外,使用 require,您可以有条件地导入模块:

if (CONDITION) {
const foo = require('foo');
}

关于node.js - 如何防止模块在 NodeJS 的生产中加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com