ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Настройка title с помощью htmlWebpackPlugin в Vue CLI 3

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для настройки title воспользуйтесь файлом vue.config.js, добавив в него следующую конфигурацию:

JS
Скопировать код
// vue.config.js
module.exports = {
  pages: {
    index: {
      title: 'Заголовок вашей страницы',
    },
  },
};

Не забудьте вставить <title><%= htmlWebpackPlugin.options.title %></title> в шаблон public/index.html для корректной работы. Для динамического изменения заголовка используйте Vue Meta или JavaScript. Подробнее об этом – ниже.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Динамическое название: способы реализации

Vue Meta: искусство управления метаданными

Vue Meta – это превосходное решение для управления метаданными в приложении Vue. Добавьте его через npm install vue-meta, подключите в main.js и настройте метаданные (включая заголовки) в компонентах:

JS
Скопировать код
import Vue from 'vue';
import VueMeta from 'vue-meta';

Vue.use(VueMeta);

Теперь вы можете определить title в компонентах так:

JS
Скопировать код
export default {
  metaInfo: {
    title: 'Заголовок страницы',
    // Здесь можно добавлять и другие мета-теги...
  }
}

Vue Meta поддерживает обновления в реальном времени и совместим с серверной отрисовкой (SSR).

JavaScript: быстрое изменение заголовка

Если вам требуется изменить title в процессе выполнения приложения, примените JavaScript в жизненном цикле компонента:

JS
Скопировать код
mounted() {
  document.title = 'Динамический заголовок';
}

Статическое название: прямой и надёжный способ

Непосредственная установка: верность традициям

Вы можете непосредственно указать title в файле public/index.html:

HTML
Скопировать код
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Статический заголовок страницы</title>
</head>
<body>
    <div id="app"></div>
</body>
</html>

Webpack Chain: тонкая настройка конфигурации

Либо измените конфигурацию Webpack при помощи chainWebpack:

JS
Скопировать код
module.exports = {
  chainWebpack: config => {
    config.plugin('html')
      .tap(args => {
        args[0].title = 'Заголовок вашей страницы';
        return args;
      });
  }
}

Не забывайте перезапускать сервер после внесения изменений в vue.config.js, поскольку он не поддерживает горячую перезагрузку.

Правила хорошего тона: адекватное название – это часть UX

Выбирайте title, который будет точно соответствовать содержанию вашего приложения и легко понятен пользователю. Всегда делайте UX главным приоритетом!

Визуализация

Представьте свой проект на Vue как великолепное здание. Вот как вкладывается настройка названия:

JS
Скопировать код
// vue.config.js
module.exports = {
  chainWebpack: (config) => {
    config
      .plugin('html')
      .tap(args => {
        args[0].title = 'Название вашего проекта'; // Устанавливаем название здесь
        return args;
      });
  }
}

Результат: ваше здание ныне гордостью носит вывеску с новым названием!

Распространенные ошибки и пути их решения

Забыли перезапустить сервер

Если изменения в vue.config.js не отображаются, необходимо перезапустить сервер, так как Webpack не обрабатывает горячую перезагрузку таких изменений.

Исчезло динамическое обновление заголовка

Если вы не замечаете изменений заголовка в реальном времени, проверьте использование Vue Meta или корректное применение document.title.

Переменная окружения не функционирует

Чтобы получить доступ к переменным окружения в Vue, используйте префикс VUE_APP_.

Полезные материалы

  1. Настройка Vue CLI
  2. HTML и статические ресурсы в Vue CLI
  3. Понимание плагинов в Webpack
  4. Руководство по развертыванию Vue.js
  5. Переменные окружения и режимы в Vue CLI
  6. Документация по HtmlWebpackPlugin