Обслуживание Vue.js Рендеринг на стороне сервера на узле-сервере

#javascript #node.js #vue.js #server-side-rendering

#javascript #node.js #vue.js #рендеринг на стороне сервера

Вопрос:

Я пытаюсь запустить демонстрационную версию Hackernews 2.0 и запустить ее на моем Digital Ocean droplet, но у меня ничего не получается.

  • npm run start запуск сервера на: 8080.
  • npm run build сборки для производства.

Здесь определены определенные задачи сборки:

   "scripts": {
    "dev": "node server",
    "start": "cross-env NODE_ENV=production node server",
    "build": "npm run build:client amp;amp; npm run build:server",
    "build:client": "cross-env NODE_ENV=production webpack --config build/webpack.client.config.js --progress --hide-modules",
    "build:server": "cross-env NODE_ENV=production webpack --config build/webpack.server.config.js --progress --hide-modules"
  }
  

… и весь репозиторий находится здесь.

Но что я должен выполнить, чтобы служить веб-сайтом : 80?

Я спросил на Gitter.im , на Vue-канале, но с нулевым успехом.

Кто-нибудь?

Комментарии:

1. Можем ли мы увидеть какой-нибудь исходный код? очень сложно ответить на вопрос, в котором недостаточно подробностей

2. @mtsdev: я обновил вопрос.

3. проверьте ответ. последний вариант — слепой выстрел

Ответ №1:

Вам не нужно выполнять ничего особенного. Просто измените определение порта прослушивания внутри приложения в строке 89 server.js

 const port = process.env.PORT || 80   // << changed here
  

или экспортируйте порт env Var перед запуском. В Linux что-то вроде

 export PORT=80 amp;amp; npm start
  

Редактировать:

или даже создайте свой собственный сценарий запуска в package.json

 "start80": "cross-env NODE_ENV=production PORT=80 node server",
  

(возможно, я не знаю точно, как работает cross-env)