BaseModule

Base - Модуль для подключения основных переменных и плагинов приложения

Nuxt install

// nuxt.config.js

const palette = {
  white: '#fff',
  blue: '#01de'
};

export default {
  modules: [
    ['shared-front/nuxt/base', {
      stage: 'dev',
      blocks: [
        {
         prefix: 'custom',
         active: ({ mode }) => mode !== 'custom'
        },
      ],
      colors: {
        primary: {
          text: palette.white,
          bg: palette.blue,
          alert: {
            text: palette.blue,
          },
        }
      },
    }],
  ],
};

Module options

colors

  • type: Record<string, Color>
  • default: null

Конфигурация основных цветов приложения. Далее данный объект доступен так же по алиасу #runtime/shared-front/colors.json и $colors переменной из stylus. Список названий цветов доступен по алиасу #runtime/shared-front/color-names.json

stage

  • type: 'prod' | 'dev' | 'local' | 'stage'
  • default: 'prod'

Мод разработки, далее превращается в process.env.EDU_STAGE и process.env.STAGE

icons

  • type: boolean
  • default: true

Подключение стилей иконок font-awesome

palette

  • type: Record<string, string>
  • default: null

Палитра цветов. Далее данный объект доступен так же по алиасу #runtime/shared-front/palette.json и $p, $pallete переменным из stylus.

baseCss

  • type: boolean
  • default: true

Подключение переменных src/styles/base.styl

patchRoute

  • type: boolean
  • default: true

Исправление route с целью синхронизации с текущей страницей

stripBlocks

  • type: Array<{ prefix: string; active: boolean | ({ mode: string; isVue2: boolean; isVue3: boolean; isServer: boolean; isClient: boolean; }) => boolean }>
  • default: []

Блоки для задания удаляемых сборщиком частей кода.

Блок задает правило, согласно которому сборщик вырезает код, находящихся в комментариях с префиксом соответствующего блока. Дефолтные префиксы:

  • VUE2 | VUE3-ONLY
  • CLIENT | SERVER-ONLY
  • TEST | DEV | PROD-ONLY | EXCEPT

Для вырезания одной строки кода используется синтаксис: // ${prefix}.NEXT-LINE

Для вырезания нескольких строк кода используется синтаксис: /* ${prefix}.START */ <code> /* ${prefix}.END */

Пример

Помимо выше упомянутых функций также:

  • Подключается объект дефолтных брейкпоинтов по алиасу #runtime/shared-front/breakpoints.json и название брейкпоинтов, доступных по #runtime/shared-front/mobile-first-breakpoint-names.json и #runtime/shared-front/desktop-first-breakpoint-names.json.

Plugin

Помимо кода модуля, в нем так же содержится плагин для бОльшей совместимости между vue2/vue3, nuxt2/nuxt3

  • Миксином добавляются методы $vue2Key и $vue3Key
  • Задается глобальная переменная на клиенте $nuxt для vue3.
  • Задается функция window.onNuxtReady для клиента vue3.
  • Добавляется $listeners для совместимости к vue3.
  • Добавляется реактивность router для совместимости к vue3.
  • Регистрируется NuxtLink для vue3.

$vue{v}Key

Методы созданные для простановки key параметров в кроссверсионных компонентах внутри <template v-for=.

Пример $vue{v}Key