UNPKG

react-static

Version:

A progressive static site generator for React

91 lines (86 loc) 2.05 kB
import axios from 'axios' import ExtractTextPlugin from 'extract-text-webpack-plugin' export default { getSiteData: () => ({ title: 'React Static', }), getRoutes: async () => { const { data: posts } = await axios.get('https://jsonplaceholder.typicode.com/posts') return [ { path: '/', component: 'src/containers/Home', }, { path: '/about', component: 'src/containers/About', }, { path: '/blog', component: 'src/containers/Blog', getData: () => ({ posts, }), children: posts.map(post => ({ path: `/post/${post.id}`, component: 'src/containers/Post', getData: () => ({ post, }), })), }, { is404: true, component: 'src/containers/404', }, ] }, webpack: (config, { defaultLoaders, stage }) => { let loaders = [] if (stage === 'dev') { loaders = [{ loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' }] } else { loaders = [ { loader: 'css-loader', options: { importLoaders: 1, minimize: stage === 'prod', sourceMap: false, }, }, { loader: 'sass-loader', options: { includePaths: ['src/'] }, }, ] // Don't extract css to file during node build process if (stage !== 'node') { loaders = ExtractTextPlugin.extract({ fallback: { loader: 'style-loader', options: { sourceMap: false, hmr: false, }, }, use: loaders, }) } } config.module.rules = [ { oneOf: [ { test: /\.s(a|c)ss$/, use: loaders, }, defaultLoaders.cssLoader, defaultLoaders.jsLoader, defaultLoaders.fileLoader, ], }, ] return config }, }