我有 index.js 文件,它是我的 NPM 模块的“主入口”
在index.js中我有以下代码
index.js
var server = module.exports = {};
server.load = require("./controller/loader");
loader.js
function add(args) {
loadFolder(args.path);
}
module.exports = {
add:add
}
使用我的模块的模块(作为 package.json 上的 Node 依赖项)执行以下操作
var aMoudle = require("myModule");
aMoudule.load.add({path:__dirname + '/module'});
这工作正常,但我的问题是否有办法以某种方式删除aMoudule.load.add
中使用的负载?
并改为使用 aModule.add
(但当然要将 add
保留在 loader
中,并且不要将其放入我的 index.js 中可以是一个解决方案,但我想避免它......:-) )
最佳答案
当您使用时:
server.load = require("./controller/loader");
loader的所有导出成员将被存储在server.load变量中 因此,如果您必须调用 add 您需要使用:
require('myModule').load.add()
而是从加载器中导出 add 方法本身,如下所示:
server.add = require("./controller/loader").add
这样只有 add 方法本身,您就可以直接访问 add 方法,如下所示:
require('myModule').add()
关于javascript - 将模块暴露给外部删除别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37525049/