Как настроить nextjs с несколькими конфигурациями / плагинами - PullRequest
0 голосов
/ 15 января 2019

Я использую Nextjs с шаблоном with-antd , и он поставляется с предварительно настроенным next.config.js файлом.

выглядит так;

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

// fix: prevents error when .css files are required by node
if (typeof require !== 'undefined') {
  require.extensions['.css'] = (file) => {}
}

module.exports = withCss()

Я хочу отредактировать этот файл конфигурации и добавить конфигурации, например exportPathMap.

Как это:

module.exports = {
  exportPathMap: function () {
    return {
      '/': { page: '/' },
      '/about': { page: '/about' },
      '/p/hello-nextjs': { page: '/post', query: { title: 'Hello Next.js' } },
      '/p/learn-nextjs': { page: '/post', query: { title: 'Learn Next.js is awesome' } },
      '/p/deploy-nextjs': { page: '/post', query: { title: 'Deploy apps with Zeit' } }
    }
  }
}

Но я понятия не имею, как реализовать это, не нарушая плагин withCss, пожалуйста, помогите.

1 Ответ

0 голосов
/ 16 января 2019

Решил это, осознав, что следующие плагины , такие как @zeit/next-css, которые я использовал , ожидают больше следующих конфигураций, которые передаются как объекты от плагина.

Фрагмент из @zeit/next-css плагина.

module.exports = (nextConfig = {}) => {
  return Object.assign({}, nextConfig, {
    webpack(config, options) {
      if (!options.defaultLoaders) {
        throw new Error(
          'This plugin is not compatible with Next.js versions below 5.0.0 https://err.sh/next-plugins/upgrade'
        )
}

Итак, после этого я установил exportPathMap как объект внутри withCss.

module.exports = withCss({
    exportPathMap: function() {
        return {
            '/': {page: '/'},
            '/sevices': {page: '/services'},
            '/about': {page: '/about'},
            '/contacts': {page: '/contacts'},
        }
    }
})

Вот и все! ??

...