Я использую require.context в моем приложении реакции для настройки моих редукторов в моем магазине редуксов, например, так:
// REDUCERS
let reducers = {}
let defaults = {}
const reducersReq = require.context("../reducers", true, /^(.*\.(js$))[^.]*$/im)
reducersReq.keys().forEach(key => {
const reducerName = camelCase(key.match(/.\/([\w-]+).js/)[1])
reducers[reducerName] = reducersReq(key).default
defaults[reducerName] = reducersReq(key)[`${reducerName}ReducerDefaultState`]
})
const store = createStore(
combineReducers({
router: connectRouter(history),
...reducers
}),
...
)
export default store
Таким образом, вместо того, чтобы импортировать и печатать большой объект для передачи в хранилище создания. Это прекрасно работает, но я пытаюсь немного реорганизовать и перенести эту и некоторые другие функциональные возможности магазина, которые я выделил, в отдельный пакет для приложений, которые я собираю в будущем, для которых я хочу использовать эту функциональность.
Есть ли способ перенести этот тип функциональности во внешний пакет, установленный с NPM, или, возможно, какой-нибудь преобразователь / загрузчик / плагин веб-пакета, который мог бы позволить мне содержать файл моего магазина в чистоте, но при этом иметь эту функцию ? Я занимался поиском, но я не совсем уверен, что я должен искать и как это будет называться.