NextJS配置文件-如何导出更多内容

时间:2019-08-22 18:09:00

标签: node.js webpack next.js antd i18next

我正在尝试编辑nextjs配置文件。要使用ant设计和i18next。
对于蚂蚁设计,我需要这个。

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


module.exports = 
withCss({
  webpack: (config, {
    isServer
  }) => {
    if (isServer) {
      const antStyles = /antd\/.*?\/style\/css.*?/
      const origExternals = [...config.externals]
      config.externals = [
        (context, request, callback) => {
          if (request.match(antStyles)) return callback()
          if (typeof origExternals[0] === 'function') {
            origExternals[0](context, request, callback)
          } else {
            callback()
          }
        },
        ...(typeof origExternals[0] === 'function' ? [] : origExternals),
      ]

      config.module.rules.unshift({
        test: antStyles,
        use: 'null-loader',
      })
    }
    return config
  },
})

对于i18next我需要

module.exports = {
  publicRuntimeConfig: {
    localeSubpaths: typeof process.env.LOCALE_SUBPATHS === 'string'
      ? process.env.LOCALE_SUBPATHS
      : 'none',
  },
}

所以我将其合并为:

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


module.exports = ({
  publicRuntimeConfig: {
    localeSubpaths: typeof process.env.LOCALE_SUBPATHS === 'string' ?
      process.env.LOCALE_SUBPATHS : 'none',
  }
}, withCss({
  webpack: (config, {
    isServer
  }) => {
    if (isServer) {
      const antStyles = /antd\/.*?\/style\/css.*?/
      const origExternals = [...config.externals]
      config.externals = [
        (context, request, callback) => {
          if (request.match(antStyles)) return callback()
          if (typeof origExternals[0] === 'function') {
            origExternals[0](context, request, callback)
          } else {
            callback()
          }
        },
        ...(typeof origExternals[0] === 'function' ? [] : origExternals),
      ]

      config.module.rules.unshift({
        test: antStyles,
        use: 'null-loader',
      })
    }
    return config
  },
}))

但是我不确定这是否是正确的方法,因为我仍然遇到错误(蚂蚁设计正常,并且我正在尝试导入i18next)

D:\xxx\xxx\nextcms\i18n.js:4
} = require('next/config').default().publicRuntimeConfig
                                    ^

TypeError: Cannot read property 'publicRuntimeConfig' of undefined

它可能是由其他问题引起的,但是我只需要知道我是否正确地使用i18next导出了这些蚂蚁设计。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您需要使用/* eslint-disable */ const withCss = require('@zeit/next-css') module.exports = withCss({ publicRuntimeConfig: { // ... }, webpack: (config, { isServer }) => { // ... return config }, }) 包装整个导出。

尝试以下方法:

{{1}}