nextJS 配置项

可配置内容

const withCss = require('@zeit/next-css')

// 配置说明
const configs = {
    // 编译文件的输出目录
    distDir: 'build',
    // 是否给每个路由生成Etag
    // Etag是用来做缓存验证的,如果路由执行的时候,新的Etag是相同的,那么就会复用当前内容,而无需重新渲染
    // 默认情况下,nextJS是会对每个路由生成Etag的。但是如果我们部署的时候,ngx已经做了Etag的配置,那么就可以关闭nextJS的Etag,节省性能
    generateEtags: true,
    // (不常用)页面内容缓存配置,只针对开发环境
    onDemandEntries: {
        // 内容在内存中缓存的时长(ms)
        maxInactiveAge: 25 * 1000,
        // 最多同时缓存多少个页面
        pagesBufferLength: 2,
    },
    // 在pages目录下那种后缀的文件会被认为是页面
    pageExtensions: ['jsx', 'js'],
    // (不常用)配置buildId,一般用于同一个项目部署多个节点的时候用到
    generateBuildId: async () => {
        if (process.env.YOUR_BUILD_ID) {
        return process.env.YOUR_BUILD_ID
        }

        // 返回null,使用nextJS默认的unique id
        return null
    },
    // (重要配置)手动修改webpack config
    webpack(config, options) {
        return config
    },
    // (重要配置)修改webpackDevMiddleware配置
    webpackDevMiddleware: config => {
        return config
    },
    // (重要配置)可以在页面上通过 procsess.env.customKey 获取 value。跟webpack.DefinePlugin实现的一致
    env: {
        customKey: 'value',
    },
    // 下面两个要通过 'next/config' 来读取
    // 只有在服务端渲染时才会获取的配置
    serverRuntimeConfig: {
        mySecret: 'secret',
        secondSecret: process.env.SECOND_SECRET,
    },
    // 在服务端渲染和客户端渲染都可获取的配置
    publicRuntimeConfig: {
        staticFolder: '/static',
    },
    // 上面这两个配置在组件里使用方式如下:
    // import getCofnig from 'next/config'
    // const { serverRuntimeConfig,publicRuntimeConfig } = getCofnig()
    // console.log( serverRuntimeConfig,publicRuntimeConfig )
}

if (typeof require !== 'undefined') {
    require.extensions['.css'] = file => { }
}

// 虽然next-css看起来是一个处理样式的插件,实则它是接收的一个对象,可以把传入的其他非css相关的webpack配置一并处理。
// 建议不要直接写一个新的webpack配置,因为next-css里面的webpack的配置是非常全面的,如果被覆盖了,可能会导致报错。
module.exports = withCss({
    distDir: 'build'                                                // 这里配置了之后才会生效
})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值