【发布时间】:2020-04-05 15:46:57
【问题描述】:
我正在尝试为 grunt 构建过程构建一些实用程序模块。显然我对模块系统的工作方式感到困惑,但这就是我所拥有的(因为它无关紧要,所以省略了函数逻辑):
var modifiers = {
task: function(grunt){
//logic...
}
}
var modify = function(grunt){
modifiers.task();
}
module.exports = {
modify: modify
};
然后从调用文件中:
var modifiers = require('./modifiers');
// later in file....
grunt.log.writeln(JSON.stringify(modifiers)); //outputs: {}
所以日志调用输出一个空对象。调用modifiers.modify 会报错:
Warning: modifiers.modify is not a function
我是否完全错过了 module.exports 的工作原理?我在其他文件中使用它来导出函数,但我真的需要这里的整个私有变量语义。
我还尝试将 module.exports 设置为返回对象以及其他内容的自调用函数——但无济于事。如何让它只返回修饰符对象?它需要可扩展,因此我想返回一个对象。
任何帮助都会很大。谢谢。
【问题讨论】: