Еще один вариант - require-dir-all , объединяющий функции из самых популярных пакетов.
У большинства популярных require-dir
нет опций для фильтрации файлов / dirs и делает не имеет функции map
(см. ниже), но использует небольшой трюк, чтобы найти текущий путь модуля.
Вторая по популярности require-all
имеет фильтрацию и предварительную обработку регулярного выражения, но не имеет относительного пути, поэтому вам нужно использовать __dirname
(у этого есть плюсы и контрасты), например:
var libs = require('require-all')(__dirname + '/lib');
Упомянутый здесь require-index
весьма минималистичен.
С помощью map
вы можете выполнить некоторую предварительную обработку, например создать объекты и значения конфигурации передачи (предполагая модули ниже конструкторов экспорта):
// Store config for each module in config object properties
// with property names corresponding to module names
var config = {
module1: { value: 'config1' },
module2: { value: 'config2' }
};
// Require all files in modules subdirectory
var modules = require('require-dir-all')(
'modules', // Directory to require
{ // Options
// function to be post-processed over exported object for each require'd module
map: function(reqModule) {
// create new object with corresponding config passed to constructor
reqModule.exports = new reqModule.exports( config[reqModule.name] );
}
}
);
// Now `modules` object holds not exported constructors,
// but objects constructed using values provided in `config`.
Это базовая конкатенация строк в php
echo "<li><a href='test'><span class='icon-plus'></span>"._('Test')."</a></li>";