Попытка заставить безголовый WordPress выполнить горячую перезагрузку по команде запуска пряжи - PullRequest
0 голосов
/ 25 декабря 2018

Я управляю этим проектом https://github.com/postlight/headless-wp-starter. Я смог заставить все работать до определенного момента.Бэкэнд работает нормально, однако во внешнем интерфейсе есть ошибка.

В инструкциях говорится, что нужно запустить yarn start, чтобы запустить сервер внешнего интерфейса, который должен быть next.js.Теперь это технически работает нормально и работает на localhost:3000.Однако, когда я изменяю файл scss в frontend/src/styles, он не перерисовывается в оболочке и не выполняет горячую перезагрузку в браузере, даже нажатие на обновление не показывает изменения стилей.Однако, если я остановлю пряжу с помощью ctrl + c, а затем снова запусту ее с yarn start, мои стили появятся при обновлении браузера.

Я запускаю все в Docker для Windows, поэтому не знаю, является ли этоограничение или, возможно, ошибка.Я опубликовал проблему на их github, но подумал, что здесь тоже не помешает проверить.

Единственный код, которым я могу поделиться, это package.json, так что вот оно.Заранее спасибо.

{
    "name": "frontend",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "build": "next build",
        "start": "node server.js",
        "docker:build": "docker build -t frontend .",
        "docker:clean": "docker rm -f frontend || true",
        "docker:run": "docker run -p 3000:3000 --name frontend frontend",
        "docker:stop": "docker stop frontend",
        "docker:start": "docker start frontend && yarn run docker:logs",
        "docker:logs": "docker logs -f frontend",
        "deploy":
            "yarn run docker:build && yarn run docker:clean && yarn run docker:run"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "express": "^4.16.2",
        "isomorphic-unfetch": "^2.0.0",
        "next": "latest",
        "react": "^16.0.0"
    },
    "devDependencies": {
        "autoprefixer": "7.1.5",
        "babel-plugin-module-resolver": "^2.7.1",
        "babel-plugin-wrap-in-js": "^1.1.0",
        "glob": "^7.1.2",
        "node-sass": "^4.4.0",
        "normalize.css": "^7.0.0",
        "postcss-easy-import": "^3.0.0",
        "postcss-loader": "^2.0.7",
        "raw-loader": "^0.5.1",
        "react-dom": "^16.2.0",
        "sass-loader": "^6.0.6",
        "webpack": "^3.10.0"
    }
}

Обновление: Поскольку кажется, что горячая перезагрузка - это проблема с окнами, мой главный вопрос: есть ли способ запустить задачу, которая неперезагрузка, и я могу просто обновить браузер самостоятельно, иначе я не смогу развиваться на окнах, не останавливая и не перезапуская подачу при каждом изменении, что было бы невозможно сделать.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вещи, которые стоит попробовать, - это использовать стек интерфейса (nodejs, yarn и т. Д.) Как обычно, не используя его внутри контейнера докера.Выполните следующие действия:

Backend Service

  1. Отключите порт 3000 в docker-compose.yml файле, вы можете удалить строку - "3000:3000"или измените это вместо.Из-за этого порт будет использоваться yarn, который вы запускаете вне контейнера Docker.Вызывает конфликт портов, если не изменен и не удален.
  2. Из корневого каталога проекта запустите: docker-compose up -d, чтобы запустить службы Docker,
  3. Подтвердите, что порт 3000 свободен, используя docker ps,
  4. Введите bashв докер контейнер docker exec -it wp-headless /bin/bash, затем запустите yarn install.Выполните этот шаг только один раз при первой настройке.На самом деле команда yarn install здесь не имеет ничего общего с интерфейсом реакции.Он просто настраивает WordPress и бэкэнд-зависимости.Выйдите из контейнера после завершения установки.

Обслуживание внешнего интерфейса

  1. Вы должны установить все необходимые инструменты внешнего интерфейса вваш компьютер (nodejs, yarn и т.служба разработки веб-интерфейса: yarn start,
  2. Теперь ваш стек рабочих процессов веб-интерфейса будет работать как обычно (без докера).Имейте в виду, что yarn, который вы будете использовать сейчас, находится за пределами контейнера док-станции и полностью отделен.

Надеюсь, это поможет.

0 голосов
/ 04 января 2019

Здесь есть две вещи: когда веб-сервер отображает изменения от вашего обновленного css (чтобы он был доступен для браузеров), а второй - браузер, перезагружающий страницу.

yarn start 

запускает вебсервер, но может быть нечего сказать веб-серверу перезагрузить ваши измененные файлы.Это может быть причиной, по которой вам необходимо повторно ввести команду «запуск пряжи».

Я видел вопрос о горячей перезагрузке - см. Эту ссылку

Как добавить live-reload на мой сервер nodejs

...