Я лично не рекомендую делать общий модуль.Менталитет модуля node.js - это просто require()
в том, что нужно модулю.Да, это похоже на небольшую дополнительную / избыточную типизацию в каждом модуле, но это делает каждый модуль самоописываемым и не создает ненужных зависимостей между модулями, что приводит к простейшим возможностям совместного использования или повторного использования модулей.Модули кешируются подсистемой require()
, поэтому во время выполнения вам не нужно просто стоить require()
в каждом модуле по мере необходимости.Это в значительной степени путь node.js.
Тем не менее, если вы действительно хотите создать общий модуль, вы можете сделать это так:
common.js
module.exports = {
_: require('underscore');
path: require('path');
}
otherModule.js
const {_, path} = require('common.js');
// can now call underscore methods _.each()
// can now call path methods path.join()
При этом используется разрушающее присваивание , чтобы получить свойства из экспорта common.js и назначить их переменной модуля и сделать это для несколькихсвойства в одном утверждении.Вам по-прежнему требуется перечислить каждое свойство, которое вы хотите определить в этом модуле (что помогает самостоятельно описать, что вы делаете).
Это также предполагает, что вы используете require()
и module.exports
.Если вы используете новые ключевые слова import
и export
, то вы можете соответствующим образом изменить синтаксис, но при этом использовать ту же концепцию.