如何分析 Next Js 包的大小和内容

Posted

技术标签:

【中文标题】如何分析 Next Js 包的大小和内容【英文标题】:How to analyze Next Js bundle size and content 【发布时间】:2020-02-13 01:48:29 【问题描述】:

我刚刚升级到 Next JS 9.0,当我运行构建时,有一个很棒的新功能可以显示所有已编译页面的大小。它们都在 20-30k 左右,但使用 Formik 的页面往往至少是该尺寸的两倍。主要问题是app.js文件超过600k而且是红色的。

有没有办法更深入地了解我的所有捆绑包是由什么组成的?

【问题讨论】:

【参考方案1】:

你可以使用下面的包来分析主包:

https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer

【讨论】:

哇哦,没想到是官方的 Next JS 包,看到是 webpack 插件,没看懂! 嗯,不幸的是,我按照他们的说明进行操作并收到错误消息:“ANALYZE=true : 术语 'ANALYZE=true' 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。” 我认为这个错误是关于 Powershell 或 cmd not above package 在使用 Windows 时,您还应该添加“cross-env”,这样您就不会在“ANALYZE=true”上出现错误。 cross-env ANALYZE=true next build【参考方案2】:

    安装@next/bundle-analyzercross-env 作为开发依赖:

    yarn add -D @next/bundle-analyzer cross-env
    

    在项目目录的根目录(package.json 旁边)创建一个next.config.js 文件并粘贴以下代码:

const withBundleAnalyzer = require('@next/bundle-analyzer')(
  enabled: process.env.ANALYZE === 'true',
)

module.exports = withBundleAnalyzer(
  reactStrictMode: true,
)

    转到您的 package.json 文件并将下面的行添加到 scripts 部分:

    "analyze": "cross-env ANALYZE=true next build"
    

现在您可以运行 yarn analyzenpm run analyze 来分析您的捆绑包大小。

【讨论】:

以上是关于如何分析 Next Js 包的大小和内容的主要内容,如果未能解决你的问题,请参考以下文章

使用 next.js 调整窗口大小时无法居中我的图像

R语言使用GGally包的ggpairs函数可视化变量相关性分析图:包含散点图密度图柱状图箱图等并自定义数据点的大小

OpenJDK源码分析之DirectMemory大小

OpenJDK源码分析之DirectMemory大小

使用ClassyShark分析Apk包的信息

Linux 上传入网络包的延迟 - 如何分析?