При работе над многими различными проектами Node.js у меня начался общий код, который я хочу переместить в новом пакете Node.js, чтобы не переписывать один и тот же код несколько раз. У меня есть новый модуль Node.js, и я использую его в своих проектах, используя npm link
.Структура модуля утилиты Node.js
Теперь я немного смущен относительно того, как структурировать эту общую библиотеку, чтобы правильно ее модулировать. Это то, что я сейчас в моей общей библиотеке:
// "my-common-lib"'s app.js
module.exports = {
math: require("./math/mathLib"),
network: require("./network/networkLib")
};
-
//mathLib.js
exports.pi = 3.14;
Это работает, я могу сделать следующее в другом проекте Node.js:
var commonLibrary = require("my-common-lib");
var commonMath = commonLibrary.Math;
console.log("Pi: " + commonMath.pi);
Хотя это решает проблему, я бы предпочел нечто похожее на то, как это делают lodash:
var commonMath = require("my-common-lib/math");
console.log("Awesome pi: " + commonMath.pi);
Я не могу понять, как это делает lodash, и я бы definitely like to avoid having a humongous main js file.
TL; DR Я хочу модулизовать модуль node.js, поэтому я могу потребовать подмодули (require("my-common-lib\myCommonMathLib")
), как я могу это сделать?