На моей машине установлен WSL2 (Ubuntu). И я работаю над веб-сайтом OctoberCMS/Laravel, на котором настроен Vite с HMR. Чтобы загрузить свои ресурсы на страницу, я использую плагин Vite OFFLINE для OctoberCMS.
Vite работает в том смысле, что ресурсы загружаются на страницу, и когда я вношу изменения в файлы, они отражаются в Терминале. 9:52:03 AM [vite] page reload layouts/form.htm
Проблема в том, что мне все равно приходится обновлять браузер, чтобы увидеть изменения.
Вот что я пробовал до сих пор
host: 0.0.0.0
в конфигурации моего сервера и без него (не знаю почему. Я не серверный специалист, и это то, что у меня есть на моей рабочей машине, и все работает нормально)127.0.0.1
generateResolveConf=false
в /etc/wsl.conf
и добавление nameserver 1.1.1.1
в мой /etc/resolv.conf
в WSL (опять же, я не знаю почему - так настроена моя рабочая машина, которая работает)Когда я запускаю Vite, я получаю это в своем терминале
VITE v5.2.9 ready in 185 ms
➜ Local: https://localhost:5173/themes/albums/assets/build/
➜ Network: https://172.31.16.20:5173/themes/albums/assets/build/
➜ Network: https://172.18.0.1:5173/themes/albums/assets/build/
➜ Network: https://172.19.0.1:5173/themes/albums/assets/build/
➜ press h + enter to show help
Основное различие, которое я вижу между моим ПК и рабочим ноутбуком, заключается в том, что вторая строка дает 192.
IP-адрес моего рабочего ноутбука (это работает).
Как я уже упоминал, я не разбираюсь в серверах и сетях, поэтому порты, DNS и т. д. все это для меня немного выше головы.
Вот моя конфигурация Vite, если это поможет
import { defineConfig } from 'vite'
import { resolve } from 'path'
import fs from 'fs'
const input = {
css: resolve(__dirname, 'resources/css/app.css'),
js: resolve(__dirname, 'resources/js/app.js')
}
export default defineConfig({
base: '/themes/albums/assets/build/',
publicDir: 'assets/static',
build: {
rollupOptions: { input },
manifest: true,
emptyOutDir: true,
outDir: resolve(__dirname, 'assets/build'),
assetsDir: '',
},
server: {
host: '0.0.0.0',
https: {
key: fs.existsSync('/ca/localhost-key.pem') ? fs.readFileSync('/ca/localhost-key.pem', 'utf-8') : '',
cert: fs.existsSync('/ca/localhost.pem') ? fs.readFileSync('/ca/localhost.pem', 'utf-8') : '',
},
hmr: {
host: 'localhost'
},
watch: {
usePolling: true
}
}
});
Если у кого-нибудь есть решение моей проблемы и он может помочь мне заставить HMR работать, буду очень признателен. Спасибо
Да. Мне не хватало шага, описанного в плагине Vite для OFFLINE. И это включая тег {% scripts %}
на странице. Плагин добавляет на страницу немного JavaScript, который необходим для правильной работы перезагрузок.
Мне не хватало шага, описанного в плагине Vite для OFFLINE. И это включая тег {% scripts %}
на странице. Плагин добавляет на страницу немного JavaScript, который необходим для правильной работы перезагрузок.
Вы нашли решение этой проблемы? у меня та же проблема. вите 5.2.0