NextJs на vercel — отсутствие файлов после сборки при интерполяции имен файлов

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

Настройка

Сайт выполнен на Next / typescript
Он развернут на Vercel
Он загружает mdx через next-mdx-remote в getStaticProps

Сборка

Сборка работает нормально и результирующие статические файлы содержат содержимое mdx файла, который я загружаю в страницу.

Но после ревалидации, содержимого больше нет.

ERROR: Could not find /var/task/content/static/en/home.mdx

Как ни странно, папка content существует во время сборки, таким образом корректно создавая статические файлы.

Но после развертывания папка content больше не существует, в результате чего страница пересматривается с пустым содержимым.

Причина

Это происходит потому, что nextjs использует @vercel/nft для определения того, какие именно файлы (включая node_modules) необходимы для выполнения приложения.

Поэтому, когда вы используете

const folder = "toto"
fs.readFileSync(path.join(process.cwd(), folder))
Войти в полноэкранный режим Выйти из полноэкранного режима

эта библиотека не может угадать, что она должна включить в сборку, и поэтому не включает файлы.

Решение

Вам нужно указать именно путь к включаемому файлу, а не переменную, содержащую этот путь.

fs.readFileSync(path.join(process.cwd(),'toto'))
Войти в полноэкранный режим Выйти из полноэкранного режима

Спасибо!

Оцените статью
devanswers.ru
Добавить комментарий