从节点NPM应用程序公开模块

我有节点应用程序(用作npm moudule,用作其他节点应用程序对package.json的依赖),这些应用程序需要提供对某些内部模块(对使用我的包作为依赖项的应用程序)的访问权限,所有这些模块将导出用于需要消耗的function

我的“主”模块是index.js

在里面我做以下几点:

var appState = require("./utils/appState"); var appLclStorage = require("./utils/AppLocalStorage"); var processHandler = require("./controller/processHandler"); .... var appApi = module.exports = {}; appApi.appState = appState; appApi.appLclStorage = appLclStorage; appApi.processHandler = processHandler; .... 

我有额外的模块暴露在外面…

这工作正常,但我的问题是在节点中是否有更好的/更干净的方式来做到这一点?

我发现它按照你描述的方式工作正常。

你可以通过在一个目录中添加一个index.js文件并使其从同一目录中导出其他文件来构build它。 然后require目录把他们全部。

 // add.js module.exports = function (num1, num2) { return num1 + num2; }; // subtract.js module.exports = function (num1, num2) { return num1 - num2; }; // multiply.js module.exports = function (num1, num2) { return num1 * num2; }; // index.js var Calc = {}; require('fs').readdirSync(__dirname).forEach(function (file) { if (file !== 'index.js') { var fileName = file.replace('.js', ''); Calc[fileName] = require('./' + fileName); } }); module.exports = Calc; // main.js var Calc = require('./calc'); var zero = Calc.subtract(1, 1); var one = Calc.multiply(1, 1); var two = Calc.add(1, 1); 

具有以下文件结构:

 ├── calc │  ├── add.js │  ├── index.js │  ├── multiply.js │  └── subtract.js └── main.js