构建
构建 Next.js 应用可以直接使用 npm run build 命令,构建完成后,会在根目录下生成一个 .next(该输出目录可以手动修改) 文件夹。
以下是我在实践过程中总结的一些构建优化配置,仅供参考。
next.config.js
import bundleAnalyzer from '@next/bundle-analyzer';
const isProd = process.env.NODE_ENV === 'production';
// 用于分析 Next.js 应用打包后的文件大小(可选)
const withBundleAnalyzer = bundleAnalyzer({
    enabled: process.env.ANALYZE === 'true',
    openAnalyzer: true,
    analyzerMode: 'static'
});
/** @type {import('next').NextConfig} */
const nextConfig = {
    output: 'export',
    distDir: isProd ? 'dist' : '.next',
    assetPrefix: isProd ? '/next' : '/next',
    cacheMaxMemorySize: 60 * 1024, // 设置缓存最大内存为60MB,可以根据实际情况调整
    typescript: {
        ignoreBuildErrors: true // 忽略ts构建错误
    },
    eslint: {
        ignoreDuringBuilds: true // 忽略eslint构建错误
    }
};
export default withBundleAnalyzer(nextConfig);
上述代码中,我使用了 @next/bundle-analyzer 插件,可以分析 Next.js 应用打包后的文件大小。
其实 Next.js 本身的代码分割功能已经足够强大,不需要我们再做额外的优化,但是不排除有用户关心打包后的文件大小,所以这里给出了一个简单的配置。
- 安装 @next/bundle-analyzer插件:npm i @next/bundle-analyzer
- 在 package.json中添加"analyze": "ANALYZE=true next build"命令,用于开启分析功能
- 运行 npm run analyze命令,查看分析结果