Как говорит @AlexanderStaroselsky, вы не сможете успешно выполнить развертывание на виртуальном хостинге, хотя это не потому, что вы не можете запустить узел, вы, вероятно, можете, а потому, что вы не можете запустить обратный прокси-сервер после развертывания.,Однажды я по глупости попытался развернуть приложение nuxt на общем хостинге Godaddy, и это был настоящий кошмар.
Я получил доступ к оболочке и установил узел, перенес все файлы и запустил npm run build
, а затем npm start
.Все это прошло нормально, а затем столкнулся с вопросом о том, как направить трафик в приложение nuxt.На виртуальном хостинге вы используете файл .htaccess для направления на index.php или index.html, но вам нужно настроить правило перезаписи так, чтобы оно указывало на http://localhost:3000, которое вы можете вставить в правило перезаписи, но оно блокируетправильное функционирование приложения.Мне удалось сделать приложение видимым, но оно не имело никакой функциональности.Маршрутизация не работала, никакие изображения, полученные через require('~/assets/images/...')
, не отображались, и это было полностью неработоспособно.
Вам нужно иметь возможность установить nginx для установки обратного прокси-сервера, и общий хостинг никогда не предлагает привилегии root для его установки.Вам нужен провайдер облачного хостинга, который предоставляет вам виртуальный сервер с полными привилегиями root для установки nginx, node и любых других пакетов, которые вы можете захотеть.Есть множество из них, которые доступны по цене (возможно, в большей степени, чем виртуальный хостинг) и просты в использовании, такие как digitalocean, aws, облако Google, upcloud и так далее.
При развертывании приложения nuxt может возникнуть некоторая сложность, особенно если вы используете остальные API, и более того, если вы хотите добавить сертификат ssl, но для этого есть документация.
Все это говорит о том, что если каким-то чудом вы когда-нибудь найдете способ успешного развертывания на виртуальном хостинге, дайте мне знать, и я смогу стереть мой чертов аккаунт, за который я тупо заплатил за несколько лет и не использую.