首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么方法可以避免在React应用程序的页面加载中加载npm包吗?

有什么方法可以避免在React应用程序的页面加载中加载npm包吗?
EN

Stack Overflow用户
提问于 2020-06-26 19:12:01
回答 1查看 30关注 0票数 0

我在我的项目中使用了一些大尺寸的npm包(slate.js)。问题是,slate (和其他npm包)会在页面加载时自动加载,即使它只在延迟加载的组件中使用。

我正在尝试避免在页面加载石板和少数其他包上加载。

到目前为止,我在我的webpack配置中使用了sideEffects和usedExports,但我无法完成任何有用的事情。Webpack仍然会自动将slate和其他npm包自动放入vendor.js,并将其注入到已发布的html文件中(我相信是通过使用HtmlWebpackPlugin )

(仅供参考,我正在使用CRA和配置覆盖,用于webpack)

我不认为这段代码有用,但这是我的webpack优化属性。

代码语言:javascript
复制
config.optimization = {
      usedExports: true,
      splitChunks: {
        chunks: "async",
        maxSize: 750000,
        cacheGroups: {
          react: {
            test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
            name: "react",
            chunks: "all",
          },
          slate: {
            test: /[\\/]node_modules[\\/](slate|slate-react)[\\/]/,
            name: "slate",
            chunks: "all",
          },
        },
      },
    };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-26 19:14:54

您还需要使用dynamic import()s导入包

代码语言:javascript
复制
// likely bundles slate up into your main vendor bundle :(
import slate from 'slate';
代码语言:javascript
复制
// slate will likely get its own webpack chunk, yay!
export default async function doSomethingWithSlate() {
  const slate = await import('slate');
  // do things with slate
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62593532

复制
相关文章

相似问题

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