Блог на ReactJS - сам закоптился - не смог задеплоить - помощь срочно

1 200 руб.за час • безналичный расчёт, электронные деньги
07 марта 2017, 10:21 • 3 отклика • 56 просмотров
Читая это все делайте скидку, что автор строк не программист и делал все для удовольствия.
Я понимаю, что время стоит дорого. И готов дорого за него заплатить. Ошибка скорее всего очень глупая - реальный специалист найдет быстро. Если сможете помочь - сразу закажу пару страниц в своей админке. За это бралась пара Java / Node.js разрабов по фану - но они не дошли даже до поднятия исходника у себя (ибо ленивые).

Спасибо!

---
Введение.

В общем есть у нас идея - сделать коллективный блог авторов, который бы идеально индексировался и имел все плюшки типа:
- сайтмап;
- теги ld-json;
- много-авторность;
- open-graph разметка;
- публикация через теги (как тут) - 1 статья = много тегов;
- если хочется добавить что-то - это должно делаться быстро за 1 день без верстальщика;
- адаптивный дизайн, красиво более-менее;
- подписки, приложения через порт реакта итд - дальше уже только горы;

Хабры, медиум, тумблер итд - все на нравятся по ряду причин (не поменять, карма-дрочерство, платно, даришь контент, дизайн итд итп).

Для этого я сделал:
- скопипастил свой код АПИ на пыхе и поднял на своем компе АПИ (http://api.spark-in.me/apiHandler.php);
- закоптился в домены и купил и настроил правильные суб-домены:
-- API endpoint http://api.spark-in.me/apiHandler.php;
-- CMS http://author.spark-in.me/article-feed.php;
-- Микро-сервис работы с картинками http://pics.spark-in.me/upload/64232df21882d27900bb1033c26402d5.png;
- написал пару страниц админки (CMS) для автора (пока можно только заливать картинки и писать статьи);
- написал пару десятков статей (они все в базе, переведены с телеграфа, но там есть несколько ссылок на телеграф);

По сути осталось только запустить сайт.
Я нашел шаблон на бутстрапе, идеально подходящий и пример того как качественно писать сайты на реакте ИЗОМОРФНО (иначе SEO пойдет по бороде).
Тут описаны исходники и откуда я взял шаблон.

Но вот беда - в шаблон была впилена CMS cosmic.js, которая мне как бы не очень нужна (совсем не нужна) - ну и она за доллары и стартап (нафиг такое - люди блоги саппорят потом десятилетиями, а тут может через полгода упадет все).

---
"Техническое" описание проблемы

Я закоптился в JS и выпилил CMS и мой блог работает при ТЕСТОВОМ запуске. На моем сетапе оригинальный код работает как при тестовом, так и при боевом запуске.
Детали и комманды ниже.

В общем сейчас и целом есть следующее:
  1. Для запуска всего хозяйства нужна Unix система (Mac или Ubuntu 16(14+?));
  2. Мой сервер служит целому ряду целей (медиа, вычисления, питон, пых итд) - но там по идее все должно не мешать друг другу (опять же отличие твоего сетапа от моего может все вскроет);
  3. У меня сервер и рабочий ПК это 2 машины (косплей нормального деплоя) - у тебя может быть одна - на видео это будет видно;
  4. Вот копия оригинального кода:
    1. https://github.com/snakers4/react-universal-blog-master;
    2. Тут есть readme, где описано как запускать http://prntscr.com/e9ya7r;
    3. Прочитай также структуру оригинала - микро-компоненты, appstore и flux + react;
    4. Обрати внимание, что либы немного устарели, но оно работает поругавшись на 1 либу, которую надо обновить;
    5. Также оно работает как на тесте (sudo npm run development), так и на проде (sudo npm start)
    6. Обрати внимание, что в оригинальный шаблон впилена CMS-ка - ее я выпиливал;
    7. Все зависимости прописаны в файлах
      1. package.json (либы, список которых берется при sudo npm install)
      2. webpack.config.js
    8. Вот пример того, как оно у меня работает (как запускаю и как выглядит)
      1. Тест и бой
      2. Твой сетап может отличаться, но все реально из коробки запускается
    9. При чтении кода смотри в первую очередь файлы
      1. actions.js
      2. app-server.js
      3. package.json
      4. stores
      5. components обзорно
      6. routes.js
  5. У меня настроены лютые конфиги в апаче и прописаны заголовки в АПИ (обращение к АПИ с клиента не работает для кросс-доменных запросов) - но я могу просто добавить твой IP в заголовок АПИ на пыхе (если само не сработает сразу - стукни в чат - я пропишу твой IP и порт хардкодом). У меня есть проблема с настройкой reverse proxy для одновременной работы апача и node, но эта проблема не проявляется с оригинальным кодом, если я захожу по порту 3000 вручную;
  6. На видео я меняю вход по домену и просто локалке, но это по идее на суть влиять особо не должно;
  7. Вот копия моего текущего кода:
    1. https://github.com/snakers4/react-universal-blog
    2. CMS заменена на библиотеку "reqwest": "2.0.5" после теста 3-4 разных либ из npm (выбрал работающую либу по идее для клиент серверных http запросов);
    3. Основные изменения были в АПИ и в коде файла actions.js - все остальное это чисто мелкие правки;
    4. Видео;
    5. Обрати внимание на изоморфность сайта - файл app-server.js (я там половину не понимаю, но суть в целом улавливаю);
    6. А теперь внимание прикол - на тесте все работает, но когда я захожу в бой, страница сначала собирается, скармливается браузеру, а потом js выдает ошибку на сервере в консоли;
    7. Я проводил обширные тесты (ебался в сумме уже 20+ часов) буквально на каждом шаге от получения данных до их разбора по компонентам. Данные как на сервере, так и на клиенте приходят. Просто в какой-то момент они "теряются" - я не могу понять почему. Какой-то пиздец.
    8. Мои гипотезы
      1. Дрочево с апачем и сетью локальной - маловероятно - оригинал же работает что по домену, что в локалке. Плюс если бы данные не приходили - был бы "хоровод" бесконечный
      2. Данные не приходят от АПИ из-за заголовков (я вручную тестил в консоли - строка всегда приходит)
      3. Неведомая ебаная хуйня из-за отличия сервера и клиента
      4. Библиотека rekwest (по сути то же самое, что и пункт 2)
      5. Мой быдлокод и нотация ES2016 - может я что-то не понимаю просто
      6. Scope переменных, какие-то хитрые bind функций, scope фунций
      7. Неведомая ебаная хуйня
Много текста, но иначе не опишешь. По идее после вдупления в оригинал, нам стоит по скайпу связаться - я буду оперативно вносить правки в АПИ (заголовки), чтобы ты мог тестить.
В общем и целом я выдохся, т.к. не будучи разрабом мне пришлось написать (собрать) АПИ, CMS фронт итд - я устал очень.