我想为我的项目需求添加一些方法到异步包中。我不想更改 aync 的 js 文件。如何扩展Node的一个模块来增加更多的功能?
当我做 require('myasync') 时,我想要'async'模块的所有功能以及我添加的功能。
最佳答案
完成此操作的步骤是:
- 获取模块的预定义功能作为您自己的变量
- 修改、删除和/或向变量添加更多功能(通过 Javascript 的函数范式)
- 将变量重新导出为您自己的变量,这允许您
要求
它(作为 NPM 模块或作为文件模块)。
首先,我们需要异步。
var newModule = require('async');
现在我们已经检索到模块async
,我们可以附加我们自己的函数。
newModule.betterParallel = function(myParameters) { ... };
我们不仅可以添加我们自己的功能,我们甚至可以从模块中删除 - 因为它现在是我们自己的。
delete newModule['series'];
完成后,我们需要重新导出新模块。
module.exports = newModule;
如果你想将它作为你自己的模块发布到 NPM,你可以使用 npm publish
。如果你不想,你可以简单地require
这个文件 - 现在它包含你修改过的更改。
关于node.js - 向 Node 模块扩展或添加功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517744/