Open
Description
What problem does this feature solve?
Allow for asynchronous actions within vue.config.js. The specific use-case I'm looking at right now is the need to prerender dynamic routes based on data returned by an api. I'm found a few things online but nothing that appears to work with vue cli 3.x
What does the proposed API look like?
Await the result of the configureWebpack
or chainWebpack
methods:
const path = require('path')
const axios = require('axios')
const PrerenderSPAPlugin = require('prerender-spa-plugin')
module.exports = {
configureWebpack: async () => {
const { data } = await axios.get('http://some-api.com/companies')
const { companies } = data
return {
plugins: [
new PrerenderSPAPlugin({
// Required - The path to the webpack-outputted app to prerender.
staticDir: path.join(__dirname, 'dist'),
// Required - Routes to render.
routes: [ '/' ].concat(companies.map(company => `/companies/${company}`))
})
]
}
}
}