Русский
Исправление проблем
Смотрите Руководство по устранению неполадок Rollup для получения дополнительной информации.
Если приведенные здесь предложения не работают, попробуйте опубликовать вопросы в Обсуждения GitHub или на канале #help
в Vite Land Discord.
CLI
Error: Cannot find module 'C:\foo\bar&baz\vite\bin\vite.js'
Путь к папке вашего проекта может включать &
, что не работает с npm
в Windows (npm/cmd-shim#45).
Вам нужно будет либо:
- Переключитесь на другой менеджер пакетов (например,
pnpm
,yarn
) - Удалите
&
из пути к вашему проекту
Сервер разработки
Запросы задерживаются навсегда
Если вы используете Linux, причиной проблемы могут быть ограничения файловых дескрипторов и ограничения inotify. Поскольку Vite не объединяет большинство файлов, браузеры могут запрашивать много файлов, для которых требуется много файловых дескрипторов, что превышает лимит.
Чтобы решить эту проблему:
Увеличьте лимит дескриптора файла на
ulimit
shell# Check current limit $ ulimit -Sn # Change limit (temporary) $ ulimit -Sn 10000 # You might need to change the hard limit too # Restart your browser
Увеличьте следующие ограничения, связанные с inotify, с помощью
sysctl
shell# Check current limits $ sysctl fs.inotify # Change limits (temporary) $ sudo sysctl fs.inotify.max_queued_events=16384 $ sudo sysctl fs.inotify.max_user_instances=8192 $ sudo sysctl fs.inotify.max_user_watches=524288
431 Поля заголовка запроса слишком велики
Когда сервер / сервер WebSocket получает большой HTTP-заголовок, запрос будет отброшен, и будет показано следующее предупреждение.
Server responded with status code 431. See https://vitejs.ru/guide/troubleshooting.html#_431-request-header-fields-too-large.
Это связано с тем, что Node.js ограничивает размер заголовка запроса для смягчения последствий CVE-2018-12121.
Чтобы этого избежать, попробуйте уменьшить размер заголовка запроса. Например, если файл cookie длинный, удалите его. Или вы можете использовать --max-http-header-size
, чтобы изменить максимальный размер заголовка.
HMR
Vite обнаруживает изменение файла, но HMR не работает
Возможно, вы импортируете файл с другим регистром. Например, src/foo.js
существует, а src/bar.js
содержит:
js
import './Foo.js' // should be './foo.js'
Связанная проблема: #964
Vite не обнаруживает изменение файла
Если вы используете Vite с WSL2, Vite не может отслеживать изменения файлов в некоторых условиях. Смотрите параметр server.watch
.
Происходит полная перезагрузка вместо HMR
Если HMR не обрабатывается Vite или плагином, произойдет полная перезагрузка.
Также, если есть цикл зависимости, произойдет полная перезагрузка. Чтобы решить эту проблему, попробуйте удалить цикл.
Сборка
Встроенный файл не работает из-за ошибки CORS
Если вывод HTML-файла был открыт с использованием протокола file
, сценарии не будут запускаться со следующей ошибкой.
Access to script at 'file:///foo/bar.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///foo/bar.js. (Reason: CORS request not http).
Смотрите Причина: запрос CORS не HTTP - HTTP | MDN для получения дополнительной информации о том, почему это происходит.
Вам нужно будет получить доступ к файлу по протоколу http
. Самый простой способ добиться этого — запустить npx vite preview
.
Другие
Произошла ошибка синтаксиса/ошибка типа
Vite не может обрабатывать и не поддерживает код, который работает только в нестрогом режиме (небрежный режим). Это связано с тем, что Vite использует ESM и всегда строгий режим внутри ESM.
Например, вы можете увидеть эти ошибки.
[ERROR] With statements cannot be used with the "esm" output format due to strict mode
TypeError: Cannot create property 'foo' on boolean 'false'
Если этот код используется внутри зависимостей, вы можете использовать patch-package
(или yarn patch
или pnpm patch
) для эвакуационного люка.