Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux+;了解网页包包的大小_Reactjs_Webpack - Fatal编程技术网

Reactjs Redux+;了解网页包包的大小

Reactjs Redux+;了解网页包包的大小,reactjs,webpack,Reactjs,Webpack,我读了各种各样的答案,比如关于减少捆绑的大小。首先,我想了解我的13MB包是怎么回事,所以我安装了。它生成了以下输出: 有几件事我不明白: 为什么react会以两种不同的尺寸出现两次 为什么加起来不到13MB?(大约4.75MB) 这是否意味着我自己的代码只有4KB?(最后一行) 从这棵树可以理解如何保存KBs吗?我的意思是,例如,有没有一种方法可以只使用部分lodash,还是React需要它作为一个整体 更新: 找到了#1的答案。需要不同版本的react和lodash。没有颜色,我的包从1

我读了各种各样的答案,比如关于减少捆绑的大小。首先,我想了解我的13MB包是怎么回事,所以我安装了。它生成了以下输出:

有几件事我不明白:

  • 为什么react会以两种不同的尺寸出现两次
  • 为什么加起来不到13MB?(大约4.75MB)
  • 这是否意味着我自己的代码只有4KB?(最后一行)
  • 从这棵树可以理解如何保存KBs吗?我的意思是,例如,有没有一种方法可以只使用部分lodash,还是React需要它作为一个整体
  • 更新: 找到了#1的答案。需要不同版本的react和lodash。没有颜色,我的包从13MB下降到8MB。我将尝试找到一种方法来重复使用react和lodash。

    1)有时其他依赖项需要再次使用lodash和/或react,因此这些依赖项会被webpack多次拉入(通常在版本不同时发生),这里的。最终的捆绑包大小还取决于webpack中的
    devtool
    条目,因此在开发过程中,它通常要大得多,因为您可能启用了sourcemaps,并且您的构建没有优化。如果没有实际的网页配置,很难说

    2) 也许webpack已经在重复数据消除了

    3) 最后一行是400KB

    4) 您肯定可以节省一些kbs。一个好的开始方法是使用,这将只导入实际使用的lodash方法,而不是完整的库。您也可以只需要从
    材质ui
    中所需的位,如中所述。 我最近将添加到了我的webpack配置中,因此我立即看到了组成捆绑包大小的输出和百分比,因此如果您并不真正需要它们,您可能会三思而后行添加大量依赖项。

    1)有时其他依赖项需要再次使用lodash和/或react,因此webpack会多次提取这些依赖项(通常发生在版本不同的时候),这里应该有帮助。最终的捆绑包大小还取决于你的
    devtool
    在webpack中的条目,所以在开发中,它通常要大得多,因为你可能启用了sourcemaps,并且你的构建没有优化。如果没有实际的webpack配置,很难判断

    2) 也许webpack已经在重复数据消除了

    3) 最后一行是400KB

    4) 您肯定可以节省一些kbs。一个好的开始方法是使用,这将只导入实际使用的lodash方法,而不是完整的库。您也可以只需要从
    材质ui
    中所需的位,如中所述。
    我最近在我的网页包配置中添加了,因此我立即看到了组成捆绑包大小的输出和百分比,因此,如果您真的不需要它们,您可能会三思而后行添加巨大的依赖项。

    您的网页包配置文件中似乎有
    eval source map
    devtool选项,这就是为什么你会得到这么大的包裹大小。这样,sourcemaps就可以放在bundle js文件中

    尝试将此选项更改为
    源地图
    ,以单独构建源地图

    //webpack.config.js
    {
    devtool:'源映射',
    //……其他选择
    }
    
    在您的webpack配置文件中似乎有
    eval source map
    devtool选项,这就是为什么您获得如此巨大的捆绑包大小。这样,sourcemaps就可以放在bundle js文件中

    尝试将此选项更改为
    源地图
    ,以单独构建源地图

    //webpack.config.js
    {
    devtool:'源映射',
    //……其他选择
    }