Greg Bergé eb1cfe8e21 feat: improve SSR support
BREAKING CHANGE:

- SSR has been rewritten from scratch, if you use it, please follow the
new guide.
- Prefetch component and prefetch functions have been removed, please
use `webpackPrefetch` instead.
2018-11-10 18:05:23 +01:00

30 lines
718 B
JavaScript

const loadableBabelPlugin = require('../../packages/babel-plugin')
function isWebTarget(caller) {
return Boolean(caller && caller.target === 'web')
}
function isWebpack(caller) {
return Boolean(caller && caller.name === 'babel-loader')
}
module.exports = api => {
const web = api.caller(isWebTarget)
const webpack = api.caller(isWebpack)
return {
presets: [
'@babel/preset-react',
[
'@babel/preset-env',
{
useBuiltIns: web ? 'entry' : undefined,
targets: !web ? { node: 'current' } : undefined,
modules: webpack ? false : 'commonjs',
},
],
],
plugins: ['@babel/plugin-syntax-dynamic-import', loadableBabelPlugin],
}
}