Эта ошибка ENOSPC: System limit for number of file watchers reached возникает из-за того, что система наблюдения за файлами достигла лимита. На shared-хостинге это частая проблема:
Отключить watch режим
npm run build
или
npm run production
Это скомпилирует ассеты один раз без постоянного отслеживания изменений.
Настроить webpack.mix.js
В файле webpack.mix.js добавь опцию для отключения polling:
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.options({
processCssUrls: false
});
// Отключить file watching для production
if (mix.inProduction()) {
mix.version();
}
Использовать polling вместо inotify
Создай файл .env.local в корне проекта:
CHOKIDAR_USEPOLLING=true
CHOKIDAR_INTERVAL=1000
Локальная разработка
Рекомендую:
Разрабатывать локально с npm run dev
На хостинге использовать только npm run build
Загружать уже скомпилированные файлы из папки public/
Альтернативный подход
Если нужно часто пересобирать ассеты на хостинге:
npm run watch-poll
Оптимизация для хостинга
В package.json добавь скрипт:
{
"scripts": {
"build-prod": "npm run production && npm run build"
}
}
И последний вариант найди самый дешевый VPS уже в год (примерно 10-12$) можно купить по цене хостинга:
и там уже настрой сам как надо, согласно документации уже.
На котором не каких ограничений у тебя не каких уже не будет.