首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暂时禁用react-loadable

暂时禁用react-loadable
EN

Stack Overflow用户
提问于 2018-12-19 03:25:57
回答 3查看 529关注 0票数 11

在使用react-loadable时,您不会轻易被那些异步组件中抛出的错误所警告,比如错误的导入。

我希望能够在开发环境中禁用react-loadable (绕过它,并同步加载所有内容),并在生产环境中启用它,但我不知道如何覆盖react-loadable来使其工作:

代码语言:javascript
复制
import Loadable from 'react-loadable';
import LoadingComponent from './Loading';

// My reused loadable component everywhere
// In production
export default options =>
  Loadable({
  loading: LoadingComponent,
  delay: 200,
  ...options,
});

// Ideally a dev version that skips loadable
// In development, without any async import
export default options => options.loader(); // Does not work

有没有办法做到这一点?

EN

回答 3

Stack Overflow用户

发布于 2019-05-10 21:38:14

您可以尝试根据运行状态导出一个或另一个函数,方法如下:

代码语言:javascript
复制
import Loadable from 'react-loadable';
import LoadingComponent from './Loading';

let fn = options => Loadable({
    loading: LoadingComponent,
    delay: 200,
    ...options,
})

if (process.env.NODE_ENV !== 'production') {
    fn = options => Loadable({
         loading: () => null,
    });
}

export default fn;

需要loading: () => null选项才能不呈现任何内容。

现在,您可以使用NODE_ENV环境变量加载或不加载Loadable

票数 2
EN

Stack Overflow用户

发布于 2019-05-15 07:21:14

简短的回答是“不”。我认为你必须重写很多代码。但是,您可以设置一个带有服务器端渲染的开发环境,当SSR时,react-loadable是同步的。

使用参数serverSideRequirePath

这是来自this article的用法示例

代码语言:javascript
复制
import path from 'path';

const LoadableAnotherComponent = Loadable({
  loader: () => import('./another-component'),
  LoadingComponent: MyLoadingComponent,
  delay: 200,
  serverSideRequirePath: path.join(__dirname, './another-component')
});
票数 1
EN

Stack Overflow用户

发布于 2020-12-07 18:33:33

您可能需要考虑在本地环境中关闭代码拆分。

代码语言:javascript
复制
new webpack.optimize.LimitChunkCountPlugin({
   maxChunks: 1
}),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53839781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档