РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗tlVtPlTr 62 of 72 menu
◀ ▶

Преобразование кода в Vite

Преобразование кода меняет текст модуля одним хуком до того, как его увидит браузер.

Пусть на странице должно появиться одно слово. В исходнике запишем hello, а плагин подменит его на другое только в памяти сервера. Сначала точка входа и модуль:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> <div id="app"></div> <script type="module" src="/src/main.js"></script> </body> </html>

Текст для блока app зададим в модуле:

document.querySelector('#app').textContent = 'hello';

В файле настройки опишем плагин с одним хуком transform. Функция получает строку кода и путь файла; вернём строку, где hello заменено на vite:

import { defineConfig } from 'vite' export default defineConfig({ plugins: [ { name: 'replace-hello', transform(code, id) { if (!id.endsWith('main.js')) { return } return code.replaceAll('hello', 'vite') }, }, ], })

Перезапустим сервер разработки, откроем http://localhost:5173 и увидим на странице vite, хотя в src/main.js по-прежнему записано hello. Заголовок вкладки плагин не трогал: там остаётся hello из index.html.

Запишите в модуле слово ready, настройте хук так, чтобы на странице отображалось done, и проверьте результат после перезапуска сервера.

Ограничьте замену только файлами в src/ и убедитесь, что vite.config.js не проходит через неё.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить