разработка стека node.js, vue.js и express.js - PullRequest
3 голосов
/ 27 апреля 2019

Я пытаюсь создать веб-приложение, используя vue.js, express.js и node.js, используя IDE Visual Studio Code в Linux. Следуя некоторой документации в Интернете, я прочитал, что после установки vue.js можно создать приложение vue.js , используя следующую команду:

vue create my-app

Следуя другой документации, заявлено, что можно создать приложение express.js , выполнив эту команду:

express myExpressApp

Как создать приложение, которое я буду разрабатывать, используя IDE VS Code, которое является и приложением vue.js и приложением express.js?

1 Ответ

2 голосов
/ 27 апреля 2019

Я бы рекомендовал сначала создать ваше приложение vue. Добавить в Express вещи вручную, потому что этот бит быстро и легко.

1. Начните с создания вашего приложения Vue

Если вы следуете документации vue здесь , то при использовании vue-cli все будет структурировано для вас

Содержимое вашего источника vue будет находиться в каталоге src в корневом каталоге вашего проекта. После запуска npm run build (аналогично vue-cli-service build) будет создан каталог dist, содержащий встроенный код на стороне клиента.

2. Добавить в Экспресс

Я бы порекомендовал поместить код на стороне сервера в новый каталог в корневом каталоге вашего проекта, скажем, server, затем создать файл в этом каталоге и добавить следующий код ...

const express = require('express');
const history = require('connect-history-api-fallback');
const path = require('path');

require('dotenv').config()

const app = express();

const port = process.env.PORT || 8080;

// Serve up built vue app, at the main root
const staticFileMiddleware = express.static(path.join('dist'));
app.use(staticFileMiddleware);
app.use(history({
  disableDotRule: true,
  verbose: true
}));
app.use(staticFileMiddleware);


// Make all public assets available 
app.use('/public', express.static('public'))

// App has started
app.listen(port, () => 
    console.log(`Awesome app has started and is running on port ${port} ?`)
);

Вам понадобится пара зависимостей, для приведенного выше примера вам нужно будет yarn add express connect-history-api-fallback dotenv (или использовать npm).

  • express очевидно необходимо
  • connect-history-api-fallback dotenv необходимо, если вы используете режим истории в vue, требуется не получать 404 на каждой подстранице.
  • И dotenv, просто приятно читать константы из файла .env, который вы также должны создать

Наконец, чтобы запустить его, введите node server/main (или как вы назвали этот файл в директории вашего сервера).

Возможно, вы захотите добавить эту команду в свой package.json ..

 "scripts": {
    "start": "node server/main",
     ...

Если вы используете Heroku, дважды проверьте правильность всех ваших зависимостей в вашем package.json, затем создайте файл с именем Procfile в вашем корне, содержащий следующие web: node ./server/main.js (или как бы ни назывался файл вашего сервера), и boom, ваше приложение vue теперь является приложением Express vue и готово к развертыванию!

Источник: я много раз делал эту настройку для своих сайтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...