Горячая замена модуля не работает в Vite + React + Ts с использованием Ubuntu через WSL

У меня проблема с автоматическим повторным рендерингом страницы после сохранения файла (после внесения изменений). Да, это работает в Powershell, что очень странно. Это мой package.json файл, если он понадобится:

{
  "name": "vite-project",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "main": "dist/index.js",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview",
    "test": "tsc && jest"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@babel/preset-typescript": "^7.24.1",
    "@types/jest": "^29.5.12",
    "@types/react": "^18.2.66",
    "@types/react-dom": "^18.2.22",
    "@typescript-eslint/eslint-plugin": "^7.2.0",
    "@typescript-eslint/parser": "^7.2.0",
    "@vitejs/plugin-react": "^4.2.1",
    "autoprefixer": "^10.4.19",
    "eslint": "^8.57.0",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.6",
    "jest": "^29.7.0",
    "postcss": "^8.4.38",
    "tailwindcss": "^3.4.1",
    "ts-jest": "^29.1.2",
    "typescript": "^5.2.2",
    "vite": "^5.2.0"
  }
}

и vite.config.js файл:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
})

Примечание. В Ubuntu он отображается после того, как я нажимаю r+enter, что приводит к сбросу сервера.

Итак, я попробовал несколько подходов:
• обновить Ubuntu
• удаление node_modules и package-lock.json и повторная установка всех зависимостей
• используйте разные версии узлов (16.3.0, 18.12.0, 2012.2), кстати, в Powershell работает с версией 18.12.0
• и разные версии npm
• в https://vitejs.dev/guide/troubleshooting в разделе Dev Server: Requests are stalled forever я пытался увеличить лимит файлового дескриптора и увеличить следующие ограничения, связанные с inotify
• удаление всего проекта и повторное клонирование моего проекта

Интересно, почему оно перестало работать? Раньше это работало чудесно... Большое спасибо за любую помощь :)

🤔 А знаете ли вы, что...
React поддерживает серверный рендеринг (SSR) для улучшения SEO и производительности.


75
1

Ответ:

Решено

Проведя тщательное исследование, я обнаружил на YouTube подходящее видео, в котором умело рассматривается рассматриваемая проблема. В ответ на проблему я сделал дополнение к файлу vite.config.js, как показано ниже:

server: {
    watch: {
      usePolling: true
    }
  }

Эта настройка успешно решила проблему. Однако важно отметить, что использование опроса, настроенного выше, обычно считается менее эффективным по сравнению с методом по умолчанию. Опрос включает периодические проверки всех отслеживаемых файлов для обнаружения изменений, что потенциально может привести к более высокой загрузке ЦП, особенно в крупных проектах. Поэтому к опросу целесообразно прибегать только в случае крайней необходимости. Несмотря на резолюцию, я все еще ищу ясности относительно необходимости использования опросов в этом конкретном контексте.