我在react应用中使用require.context来处理Redux存储库中的reducer设置
// 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一起安装的外部软件包中,或者可以将某种Webpack解析器/加载器/插件移入,从而可以使我的商店文件保持干净,但仍然具有此功能?我一直在进行搜索,但是我不确定我应该搜索什么,这将被称为什么。