如何优化包打包
打包外部包可以显著提升应用性能。默认情况下,Next.js 会自动打包在服务端组件 (Server Components) 和路由处理器 (Route Handlers) 中导入的包。本指南将带您分析并进一步优化包打包。
分析 JavaScript 包
@next/bundle-analyzer
是 Next.js 的一个插件,可帮助您管理应用包的大小。它会生成每个包及其依赖项大小的可视化报告。您可利用这些信息移除大型依赖项、拆分代码或进行懒加载 (lazy-load)。
安装
运行以下命令安装插件:
然后,将打包分析器的配置添加到 next.config.js
:
生成报告
运行以下命令分析您的包:
报告将在浏览器中打开三个新标签页供您检查。定期评估应用的包有助于长期保持应用性能。
优化包导入
某些包(如图标库)可能导出数百个模块,这会在开发和生产环境中引发性能问题。
您可以通过在 next.config.js
中添加 optimizePackageImports
选项来优化这些包的导入方式。该选项仅加载您实际使用的模块,同时仍允许您使用包含多个命名导出的导入语句。
Next.js 还会自动优化部分库,因此它们无需包含在 optimizePackageImports 列表中。查看完整列表。
排除特定包不参与打包
由于 Next.js 会自动打包在服务端组件和路由处理器中导入的包,您可以通过在 next.config.js
中使用 serverExternalPackages
选项将特定包排除在打包之外。
Next.js 包含一个当前正在兼容性改进中的流行包列表,这些包会自动被排除。查看完整列表。