NPM запустить сборку одновременно с React + Node + Как? - PullRequest
1 голос
/ 28 февраля 2020

Я потратил часы, пытаясь выяснить это, любые советы приветствуются. Задача состоит в том, чтобы собрать сценарий пост-сборки, который будет работать в приложении nodeJS, работающем с клиентом реагирования.

Реакция на пост 3000, а на узел 5000. Таким образом, для этого требуется библиотека одновременно . Ниже приведены две попытки do-postbuild и heroku-postbuild (обе неудачи).

  "scripts": {

    "server": "nodemon server.js --ignore client",
    "client": "npm start --prefix ../client",
    "dev": "concurrently \"npm run server\" \"npm run client\" ",
    "do-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix && npm run build --prefix client",
    "heroku-postbuild": "cd ../client && npm install && npm install --only=dev --no-shrinkwrap && npm run build" 
  },

структура папок

client
server
   |_package.json (above)
   |_server.js

npm run dev - отлично работает

Когда я пытаюсь npm run heroku-postbuild, это выдает следующее:

npm ERR! errno 1
npm ERR! ver1.02@1.0.0 heroku-postbuild: `cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build`
npm ERR! Exit status 1

При попытке записать npm run do-postbuild выдает ошибку вроде он ищет клиента в папке server

npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/Users/sites/server/client/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

1 Ответ

1 голос
/ 02 марта 2020

Это не решение HEROKU, а для обычного сервера UBUNTU с доступом root.

Решение здесь заключается в том, что вам не нужно докернизировать приложение в виде пакета (клиент и сервер вместе).

Для меня работало то, что клиент и сервер рассматривались как два разных приложения.

Клиентская сторона:

  • npm run build локально из той же папки, в которой находится ваш пакет. json файл
  • , затем выложить приложение build folder как очень прямое клиентское приложение с HTML CSS Javascript

на стороне сервера:

  • загрузка файлов server (не включая папку node_modules)
  • run npm i (из папки с пакетом. json file)
  • Я настроил обратный прокси-сервер для сопоставления порта с указанным c местоположением на сервере для реакции на достичь его
  • настроить задачу cron для запуска на стороне сервера (и периодически проверять, чтобы убедиться, что она работает)

Вот и все - отлично работает.

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