Следующая конфигурация JS config с несколькими плагинами

const {
  DEVELOPMENT_SERVER,
  PRODUCTION_BUILD
} = require("next/constants");

require('dotenv').config()

const path = require('path')
const Dotenv = require('dotenv-webpack')

const nextConfig = {
  webpack: config => ({ ...config, node: { fs: "empty" } })
};
module.exports = phase => {
  if (phase === DEVELOPMENT_SERVER || phase === PRODUCTION_BUILD) {
    const withCSS = require("@zeit/next-css");
    return withCSS(nextConfig);
  }
  return nextConfig;
};
*module.exports =  {
  webpack: (config) => {
    config.plugins = config.plugins || []
    config.plugins = [
      ...config.plugins,
      // Read the .env file
      new Dotenv({
        path: path.join(__dirname, '.env'),
        systemvars: true
      })
    ]
    return config
  }
}*

let prefix;
switch (process.env.NODE_ENV) {
  case "test":
    prefix = "https://test.domain.com/providers";
    break;
  case "stage":
    prefix = "https://state.domain.com/providers";
    break;
  case "production":
    prefix = "https://production.domain.com/providers";
    break;
  default:
    prefix = "";
    break;
}
module.exports = {
  distDir: "build",
  assetPrefix: prefix
};

Вот моя конфигурация next.config.js. Но когда я пытаюсь бежать, получаю сообщение вроде Ошибка! Сетевая ошибка: неожиданный токен N в JSON в позиции 0

Но когда я пытаюсь запустить что-либо, выделенное жирным шрифтом (*), и оставил только это в next.config.js, тогда все работает нормально. Как настроить несколько плагинов в module.export

github.com/zeit/next-plugins/issues/7 - а может это? stackoverflow.com/questions/50294005/…
gamengineers 13.04.2019 07:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
6
1
6 048
3

Ответы 3

Вот простой способ использовать несколько вложенных плагинов в Next.js

const withImages = require('next-images');
const withCSS = require('@zeit/next-css');

module.exports = withCSS(withImages({
    webpack(config, options) {
      return config
    }
  }))

Если вы хотите использовать один плагин, сделайте следующее:

const withImages = require('next-images');

module.export = withImages();

Для получения дополнительной информации о плагинах Next.js и их документации щелкните здесь: https://github.com/zeit/next-plugins/tree/master/packages

Плагин next-compose-plugins предоставляет более чистый API для включения и настройки плагинов для next.js.

Установить npm install --save next-compose-plugins

Используйте его в next.config.js:

// next.config.js
const withPlugins = require('next-compose-plugins');
const images = require('next-images');
const sass = require('@zeit/next-sass');
const typescript = require('@zeit/next-typescript');

// optional next.js configuration
const nextConfig = {
  useFileSystemPublicRoutes: false,
  distDir: 'build',
};

module.exports = withPlugins([

  // add a plugin with specific configuration
  [sass, {
    cssModules: true,
    cssLoaderOptions: {
      localIdentName: '[local]___[hash:base64:5]',
    },
  }],

  // add a plugin without a configuration
  images,

  // another plugin with a configuration
  [typescript, {
    typescriptLoaderOptions: {
      transpileOnly: false,
    },
  }],

], nextConfig);

Версия Next.js> 10.0.3

Изображения теперь встроены, поэтому можно добавить плагин и код изображения ниже:

const withPlugins = require('next-compose-plugins');
const withCSS = require('@zeit/next-css');

const nextConfig = {
    images: {
        domains: ['sd.domain.com'], // your domain
    },
};

module.exports = withPlugins([
    [withCSS]
], nextConfig);

Другие вопросы по теме