Как автоматически перезапустить Next.js приложение после обновления в другой библиотеке?

#javascript #next.js #monorepo #microbundle

Вопрос:

У меня есть монорепо с двумя приложениями:

  • Веб-приложение (Next.js)
  • Библиотека пользовательского интерфейса (Tailwind, которая использует Microbundle)

Единственный способ, которым мне удалось заставить веб-приложение видеть изменения, которые я вношу в библиотеку пользовательского интерфейса, — это:

  • Внесение изменений
  • Перестройте библиотеку пользовательского интерфейса (в данном случае я использую microbundle watch )
  • Вручную перезагрузите Next.js сервер

Мой вопрос: как я могу автоматически перезапустить Next.js сервер каждый раз, когда файлы внутри ui/dist воссоздаются (потому что они перестраиваются каждый раз, когда вносятся изменения)?

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

1. Не совсем уверен, но вы можете настроить конфигурацию веб-пакета nextjs.org/docs/api-reference/next.config.js/… ?

Ответ №1:

Вы можете использовать nodemon для просмотра любых файлов и перезапуска приложения узла, Next.js приложение в этом случае, когда они изменены.

Сначала создайте nodemon.json файл в Next.js папка проекта со следующим содержимым, соответствующим образом заменив путь к вашей ui/dist папке.

 {   
    "ignore": ["node_modules", ".next"],
    "watch": ["path-to/ui/dist/**/*"],
    "ext": "js json",
    "exec": "next dev"
}
 

Затем вам придется заменить свой dev сценарий, чтобы запустить nodemon его вместо этого.

 "scripts": {
    "dev": "nodemon",
    ...
}
 

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

1. Также это можно легко использовать, concurrently если операция хочет выполнить обе microbundle watch и nodemon в одной команде. ( dev Затем в базовый пакет.json монорепо необходимо добавить скрипт для одновременного использования.)