使用webpack 3

时间:2017-08-24 21:50:50

标签: javascript reactjs react-router lazy-loading react-router-v4

我正在react-loadable使用react-router-v4,我想要进行服务器端渲染。 当然在服务器端我不需要延迟加载,所以我开始使用react-loadable,因为它说可以在import-inspector babel插件的帮助下与服务器一起使用。

但遗憾的是我的服务器控制台require.ensure is not a function出现了错误,这导致我的客户端重新渲染,我失去了服务器端渲染的所有好处。

在我使用react-router-v3并使用getComponent import之前没有任何问题之前。

这是我的路线配置。

export default [
    {
        component: Root,
        routes: [
            {
                path: '/',
                component: Loadable({
                    loader: () => import('./Parent.jsx'),
                    loading: () => <div>Loading...</div>
                }),
                routes: [
                    {
                        path: '/',
                        exact: true,
                        component: Loadable({
                            loader: () => import('./Child.jsx'),
                            loading: () => <div>Loading...</div>
                        })
                    }
                ]
            }
        ]
    }
];

这是我的.babelrc

{
    presets : [["es2015", {modules: false}], "react", "stage-2", "stage-3"],
    plugins: [ 
        "transform-runtime", 
        "syntax-async-functions", 
        "dynamic-import-webpack"
    ],
    env: {
        node: {
            plugins: [
                ["import-inspector", {
                  "serverSideRequirePath": true,
                  "webpackRequireWeakId": true,
                }],
                ["babel-plugin-webpack-alias", {
                    "config": "webpack/server.js",
                    "findConfig": true
                }]
            ]
        }
    }
}

在客户端上它完美运行,只有错误是标记校验和差异错误。 这应该如何运作?

提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试将其添加到babel或babel加载器

“动态导入节点”,

那是来自airbnb