跳到内容

cssChunking

此功能目前为实验性功能,可能会发生变化,不建议用于生产环境。请试用并在 GitHub 上分享您的反馈。

CSS Chunking 是一种用于提高 Web 应用程序性能的策略,它通过将 CSS 文件拆分和重新排序成块来实现。这使您可以仅加载特定路由所需的 CSS,而不是一次加载所有应用程序的 CSS。

您可以使用 next.config.js 文件中的 experimental.cssChunking 选项来控制 CSS 文件的分块方式

next.config.ts
import type { NextConfig } from 'next'
 
const nextConfig = {
  experimental: {
    cssChunking: true, // default
  },
} satisfies NextConfig
 
export default nextConfig

选项

  • true (默认):Next.js 将尽可能尝试合并 CSS 文件,从导入顺序确定文件之间显式和隐式的依赖关系,以减少块的数量,从而减少请求的数量。
  • false:Next.js 不会尝试合并或重新排序您的 CSS 文件。
  • 'strict':Next.js 将按照 CSS 文件导入到文件中的正确顺序加载它们,这可能会导致更多的块和请求。

如果您遇到意外的 CSS 行为,您可以考虑使用 'strict'。例如,如果您在使用不同的 import 顺序(ab 之前,或 ba 之前)在不同的文件中导入 a.cssb.css,则 true 将以任何顺序合并文件,并假定它们之间没有依赖关系。但是,如果 b.css 依赖于 a.css,您可能需要使用 'strict' 来防止文件被合并,而是按照它们导入的顺序加载它们 - 这可能会导致更多的块和请求。

对于大多数应用程序,我们建议使用 true,因为它会减少请求并提高性能。