我可以在 node.js 中要求一个函数而不执行整个要求的文件吗?

Can I require a function in node.js without executing the entire required file?

第一次在这里提问。我有以下示例案例: export.js 文件包含一个函数和一些额外的代码行。在这种情况下,它只是一个日志:

//exporting.js
function add(a,b) {
return a+b;
}
console.log(add(5,8));
module.exports = add;

import.js 文件需要函数 add,但是当它被执行时它也会在 exporting.js

中打印日志
//import.js
adds = require('./exporting.js');
console.log(adds(1,2));

所以它最终打印:

13
3

我想知道是否有一种方法可以在不执行所有必需文件的情况下要求一个函数。

我试过将我的函数放在一个对象中,但它仍然打印第一个日志。

希望你能帮帮我,我没有找到任何相关的东西,抱歉,如果这是一个菜鸟问题。

I want to know if there's a way to require a function without executing all the required file.

不,你不能。对于 CommonJS 模块,您知道导出内容的唯一方法是通过 运行 文件并将其分配给 module.exports。如果没有 运行 文件,将不会导出任何内容。

对此的设计解决方案是将您想要的导出函数单独移动到一个单独的模块中,该模块除了导出您的函数外什么都不做。然后,您可以 require() 该模块而不会加载该模块的任何副作用。