- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
使用 react-loadable
的服务器端渲染是否适用于 Webpack 4 和 Babel 7?在关注 the instructions 时,我一直无法让它成功运行.
仅执行客户端步骤后,Webpack 会为每个可加载组件正确输出单独的 block ,这会在我在浏览器中加载页面时反射(reflect)出来(即: block 是延迟加载的)。
然而,在完成所有 SSR 步骤后,服务器抛出以下错误:
Error: Not supported
at loader (/Projects/test-project/web/routes/index.js:50:15)
at load (/Projects/test-project/web/node_modules/react-loadable/lib/index.js:28:17)
at init (/Projects/test-project/web/node_modules/react-loadable/lib/index.js:121:13)
at flushInitializers (/Projects/test-project//web/node_modules/react-loadable/lib/index.js:310:19)
at /Projects/test-project/web/node_modules/react-loadable/lib/index.js:322:5
at new Promise (<anonymous>)
at Function.Loadable.preloadAll (/Projects/test-project/web/node_modules/react-loadable/lib/index.js:321:10)
at Object.preloadAll (/Projects/test-project/web/server.js:15:10)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Module._compile (/Projects/test-project/web/node_modules/pirates/lib/index.js:83:24)
我的 routes/index.js
文件:
import React from 'react';
import Loadable from 'react-loadable';
import Loading from '../components/Loading';
export default [
{
path: '/',
component: Loadable({
loader: () => import('./controllers/IndexController'),
loading: Loading,
}),
exact: true,
},
{
path: '/home',
component: Loadable({
loader: () => import('./controllers/HomeController'),
loading: Loading,
}),
exact: true,
},
...
];
This issue on SO 可能与我在上面看到的服务器错误有关,但提供的信息更少。
我的 .babelrc
已经在使用 @babel/plugin-syntax-dynamic-import
,但我尝试添加 babel-plugin-dynamic-import-node
.这解决了服务器问题,但 Webpack 不再构建 block 。
我一直无法找到一个明确的例子来让它工作。关于正确设置的信息相互矛盾。例如,react-loadable README 说要使用包含的 react-loadable/babel
插件,而 this post lib 作者说要使用 babel-plugin-import-inspector
。 This PR似乎试图解决 Webpack 4 问题但已关闭, fork 的库似乎也有问题。
我正在使用:
最佳答案
我今天遇到了完全相同的问题。将 dynamic-import-node
添加到我的 .babelrc
的插件后,服务器工作了,但 webpack 没有创建 block 。然后我再次将它从我的 .babelrc
中删除,并使用 @babel/register
将它移动到我的服务器脚本中。我的服务器脚本现在看起来像这样:
require( "@babel/register" )({
presets: ["@babel/preset-env", "@babel/preset-react"],
plugins: ["dynamic-import-node"]
});
require( "./src/server" );
我希望这对您有所帮助;)
关于node.js - 使用 Webpack 4 和 Babel 7 的 React-Loadable SSR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52695569/
你好我是 React 的新手,我想用 Loadable 实现 routing,但是它不起作用它在 http://localhost:3000/user 时显示空白页 或 http://localhos
const PageDocuments = Loadable({ loader: () => import('./pages/documentflow/PageDocuments'),
我遇到了一个问题 react-loadable导致我的输入组件之一在状态更新后重新呈现并失去焦点。我已经做了一些挖掘,但找不到其他人遇到这个问题,所以我认为我在这里遗漏了一些东西。 我正在尝试使用 r
我使用 react-loadable 来动态加载 JS 模块。我还使用服务器端渲染,它是为 react-loadable 设置和工作的。然而,在客户端,似乎有问题,因为当我加载页面时,控制台中会出现警
我有一张幻灯片,可以呈现一堆包含一些信息的卡片。卡片高度基于最高卡片的高度。我正在为我的 slider 使用 react-slick。在第一次渲染时,卡片都设置为一个高度,但当我刷新浏览器时,卡片的高
使用 react-loadable 时,您不会轻易收到那些异步组件中抛出的错误(如错误导入)的警告。 我希望能够在开发环境中禁用 react-loadable(绕过它,并同步加载所有内容)并在生产环境
可加载模块和内置(静态链接)模块有什么区别? 我在寻找系统调用 subsys_initcall() 和 module_init() 之间差异的答案时遇到了这个问题 最佳答案 Linux 内核支持以两种
我有这个组件: import React from 'react'; const UploadAsync = Loadable({ loader: () => import('components
我正在使用 webpack 4.6.0 和 babel 7.0.0 构建 react 16.3 网络应用。 我的js资源在https://domain/js/app.bundle.js下 我使用 re
这基本上是我的所有代码。我正在运行 Hapi 并尝试使用 react-loadable 来服务器渲染我的 React 应用程序。 我在代码 here 中添加了很多缺失的部分. const locati
我正在使用react-loadable动态导入我的 React 组件有一段时间了。 在最近的 React 版本 16.6 中,React 团队包括了 React.lazy() 也执行动态导入。 仍然使
是否可以让客户端有权加载 javascript 但仍被拒绝访问存储它的页面? 最佳答案 这是不可能的。因为 Javascript 是客户端的,所以没有办法阻止客户端查看您的源代码而不阻止他们使用它。
我正在使用库 @loadable/component与 react 路线,用于代码分割等。 const AsyncViewItem = loadable(() => import("./modules
我正在尝试使用 react-loadable 实现延迟加载组件。我已按照他们的指南进行操作,但无法正常工作。 我有 3 个可加载组件 const LazyOne = Loadable({ load
我编写了一个自定义逻辑,用于处理react-router-dom .v4中的异步路由加载包。工作完美。但我也听说过一些有用的包,具有很好的 API 来执行相同的操作,例如 React-Loadable
我想从特定的注释中获取注释值,例如@Callcount,它有一个名为key的字段。 MethodList methods = typeDefinition.getDeclaredMethods();
到目前为止,我一直在尝试对我的概念网站进行代码拆分,但似乎行不通。我有一个 STLMain 组件(STLMain.js): import React from 'react'; export defa
我正在尝试开发一个针对 .net 4 框架的 C# Windows 窗体应用程序。该程序将对 Oracle 数据库执行存储过程,当我尝试打开与数据库的连接时出现以下错误。 ORA-12557 TNS:
我使用 Arm Compiler v6.9 为 Cortex-R4 构建了一个 axf (elf) 文件。但是,当我使用 Arm MCU Eclipse J-link GDB 插件将其加载到目标时,它
我正在尝试创建一个带有延迟加载导入的 ssr react 应用程序。一切正常,除了无法获取所有所需的 block 。 我还想知道这是否与基于服务器响应的动态组件有关 编辑 - 它实际上渲染了所有必需的
我是一名优秀的程序员,十分优秀!