rsnext/examples/with-ant-design/next.config.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

2020-05-18 21:24:37 +02:00
const compose = (plugins) => ({
webpack(config, options) {
return plugins.reduce((config, plugin) => {
if (plugin instanceof Array) {
const [_plugin, ...args] = plugin
plugin = _plugin(...args)
}
if (plugin instanceof Function) {
plugin = plugin()
}
if (plugin && plugin.webpack instanceof Function) {
return plugin.webpack(config, options)
}
return config
}, config)
},
webpackDevMiddleware(config) {
return plugins.reduce((config, plugin) => {
if (plugin instanceof Array) {
const [_plugin, ...args] = plugin
plugin = _plugin(...args)
}
if (plugin instanceof Function) {
plugin = plugin()
}
if (plugin && plugin.webpackDevMiddleware instanceof Function) {
return plugin.webpackDevMiddleware(config)
}
return config
}, config)
},
})
const withBundleAnalyzer = require('@next/bundle-analyzer')
module.exports = compose([
[
withBundleAnalyzer,
{
enabled: process.env.ANALYZE === 'true',
},
],
])