Как связать приложение next.js в виде виджета javascript или пакета npm?

У меня есть опрос, созданный с помощью Next.js с использованием добавочной статической регенерации (ISR). Я хотел бы связать его, чтобы я мог либо опубликовать его в npm, либо разместить один файл записи, чтобы я мог использовать опрос в других приложениях.

В настоящее время он размещен на Vercel и используетидля вызова моего API «опросов» и «вопросов для опросов». ISR великолепен, потому что он позволяет мне динамически загружать каждый шаг опроса на основе структуры API, и если я изменяю его, тоСвойство повторно создаст новый порядок или вопросы из опроса. Это также позволяет мне иметь только одну страницу для всех типов опросов/вопросов.

Моя структура приложения выглядит следующим образом:

        - src 
    - pages
      - [surveyid]
        - [...question].tsx

На основе запроса (и ответа, полученного во время сборки/повторной проверки) создаются статические файлы для идентификатора опроса, и следующий маршрутизатор будет направлять каждый вопрос опроса на основе следующего шага в объекте json из API, например. ,,и т. д..

Все это хорошо работает в производственной среде при развертывании в Vercel.

Когда дело доходит до объединения этого, чтобы опрос можно было загрузить на другие сайты, я совершенно потерялся. Когда я бегуон создает файлы prod, которые подаются в vercel, но есть много точек входа и нет ни одного файла .js.

Я пытался бежать и служитьпапка локально, а страницы и ссылки точны, но это нарушает ISR, и после прочтения документации next.js говорится, чтоне работает с ИСР.

В идеале я хотел бы иметь возможность создавать приложение для одного файла записи, например,а затем либо опубликовать как пакет в npm, либо разместить на моем сервере. Затем загрузите опрос, установив пакет или добавив прямой URL-адрес в файл src тега скрипта в других моих проектах, например,и предоставьте некоторые настройки/параметры для запроса, чтобы я мог указать, какой опрос вернуть.

Есть ли способ сделать это, сохраняя при этом ISR? Должен ли я создать какой-то файл ввода для отправки запроса и возврата статических файлов с моего сервера vercel вместо этого в качестве обходного пути?

В настоящее время я пытаюсь понять, смогу ли я использовать накопительный пакет, чтобы собрать его в один файл, но я не уверен, что это сломает следующий маршрутизатор, когда дело доходит до динамического рендеринга (или повторной проверки) страниц.

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

0 ответов

Другие вопросы по тегам