我有 Node 应用程序(用作 npm 模块并被其他 Node 应用程序用作对 package.json 的依赖)需要提供对某些内部模块(对使用我的包作为依赖项的应用程序)的访问 所有这些模块都对需要使用的功能使用导出
我的“主要”模块是 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;
....
我有额外的模块暴露在外面......
这是可行的OK,但我的问题是在 Node 中是否有更好/更清洁的方法来做到这一点?
最佳答案
我发现按照您描述的方式进行操作效果很好。
您可以通过在目录中添加一个 index.js 文件并让它从同一目录中导出其他文件来稍微构建它。然后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
关于javascript - 从 Node NPM 应用程序公开模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445755/