Для работы с библиотекой Toastify в проекте JavaScript можно использовать несколько подходов: через CDN, через npm или yarn. При использовании npm следует установить пакет командой:
npm install toastify-js
После установки библиотеку подключают через import:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Если подключение происходит через CDN, достаточно добавить в HTML:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
Базовый вызов уведомления выглядит так:
Toastify({
text: "Сообщение уведомления",
duration: 3000
}).showToast();
Минификация — процесс сжатия исходного кода без потери
функциональности. Для Toastify минифицированная версия уже
предоставляется в виде toastify.min.js при подключении
через CDN. При локальной сборке с использованием npm минификация
достигается через инструменты сборки (Webpack, Vite, Rollup) с
включением плагинов terser или встроенных опций
минификации.
Пример с Webpack:
const TerserPlugin = require("terser-webpack-plugin");
module.exports = {
mode: "production",
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: __dirname + "/dist"
},
optimization: {
minimize: true,
minimizer: [new TerserPlugin()]
}
};
Ключевые моменты минификации:
Бандлинг — объединение нескольких модулей и библиотек в один файл для удобства доставки на фронтенд. Для современных проектов используется ES-модули и сборщики вроде Webpack, Vite или Parcel.
Пример бандлинга с Webpack:
import Toastify from "toastify-js";
import "toastify-js/src/toastify.css";
import _ from "lodash";
Toastify({
text: _.upperCase("уведомление через lodash!"),
duration: 3000,
gravity: "top",
position: "right",
}).showToast();
При сборке Webpack объединяет Toastify, Lodash и собственный код
проекта в один минимизированный файл bundle.js. Это
сокращает количество HTTP-запросов и ускоряет загрузку страницы.
При интеграции в общий бандл стоит учитывать:
showToast(). В сборщиках
рекомендуется импортировать CSS в начале файла.import(), чтобы библиотека загружалась только при
необходимости.document.getElementById("notifyBtn").addEventListener("click", async () => {
const { default: Toastify } = await import("toastify-js");
import("toastify-js/src/toastify.css");
Toastify({
text: "Динамическое уведомление",
duration: 3000
}).showToast();
});
При использовании Toastify важно контролировать размер итогового бандла:
purgecss или аналог.Пример настройки Webpack с Tree-shaking:
module.exports = {
mode: "production",
optimization: {
usedExports: true,
},
};
Toastify поддерживает широкий набор параметров, которые можно использовать даже при минифицированной и объединённой версии:
text — текст уведомленияduration — длительность показаgravity — верх/низposition — левый/центр/правыйbackgroundColor — цвет фонаstopOnFocus — пауза при наведении мышиonClick — обработчик кликаПример с полной конфигурацией:
Toastify({
text: "Кастомное уведомление",
duration: 5000,
gravity: "top",
position: "center",
backgroundColor: "#4CAF50",
stopOnFocus: true,
onClick: () => console.log("Клик по уведомлению!")
}).showToast();
Даже при минификации и бандлинге все эти опции сохраняются и корректно работают, что делает Toastify универсальным инструментом для современных фронтенд-проектов.