Нет описания

mightyplow a1702d88f4 add README content 5 лет назад
loadable-mock ea6c0d5e92 initial commit 5 лет назад
transform-dynamic-import-loader ea6c0d5e92 initial commit 5 лет назад
.gitignore ea6c0d5e92 initial commit 5 лет назад
README.md a1702d88f4 add README content 5 лет назад
index.js ea6c0d5e92 initial commit 5 лет назад
package-lock.json ea6c0d5e92 initial commit 5 лет назад
package.json a1702d88f4 add README content 5 лет назад

README.md

@mightyplow/loadable-ssr

This is a helper library to enable server side rendering when using @loadable/component for React and building with webpack.

This package contains two helpers:

  • a loader for transforming dynamic imports into require statements
  • a mock for @loadable/component which returns the imported module without being wrapped into a promise

I successfully tested this with babel-loader and ts-loader.

Installation

npm i @mightyplow/loadable-ssr -D

Configuring webpack

Add these changes in the webpack config for your server application:

module.exports = {
    ...
    // You probably have externals defined to prevent webpack from building node_modules into
    // your server application. Mostly webpack-node-externals is being used for this. You have
    // to whitelist @loadable/component because otherwise the alias below won't work.
    externals: [
        require('webpack-node-externals')({
            whitelist: [
                '@loadable/component'
            ]
        })
    ],
    ...
    resolve: {
        alias: {
            // replace @loadable/component with the mock
            '@loadable/component': '@mightyplow/loadable-ssr/loadable-mock
        }
    },
    ...
    module: {
        rules: [
            {
                test: /\.jsx?/,
                loaders: [
                    'babel-loader',
                    
                    // should be the last item in order to be executed first
                    '@mightyplow/loadable-ssr/transform-dynamic-import-loader'
                ]
            }
        ]
    }
    ...
}