Используйте последовательный идентификатор сборки на основе GIT для вашего приложения Next.js
Небольшой пакет для создания последовательного идентификатора сборки на основе GIT для вашего приложения Next.js при запуске next build на каждом сервере в развертывании с несколькими серверами.
Этот модуль экспортирует функцию, которую вы можете использовать в качестве опции конфигурации GenerateBuildid в next.config.js.
По умолчанию он будет использовать последнюю хэш Commit Commit из локального репозитория GIT (эквивалент git rev-parse HEAD ):
// next.config.js
const nextBuildId = require ( 'next-build-id' )
module . exports = {
generateBuildId : ( ) => nextBuildId ( { dir : __dirname } )
}
// => 'f9fc968afa249d162c924a8d5b4ce6562c164c2e' Если вы предпочитаете использовать идентификатор сборки по сравнению с самым последним тегом в вашем GIT Repo, передайте, describe: true как вариант, а вывод git describe --tags :
// next.config.js
const nextBuildId = require ( 'next-build-id' )
module . exports = {
generateBuildId : ( ) => nextBuildId ( { dir : __dirname , describe : true } )
}
// => 'v1.0.0' (no changes since v1.0.0 tag)
// => 'v1.0.0-19-ga8f7eee' (19 changes since v1.0.0 tag) Этот модуль также раскрывает синхронную версию для пользовательских потребностей, например, передавая идентификатор сборки непосредственно в конфигурацию часовых. Просто позвоните nextBuildId.sync({ dir: __dirname }) вместо этого.
Если вы запускаете несколько экземпляров вашего приложения, сидящего за балансировщиком нагрузки без сродства сеанса (и вы создаете свое приложение непосредственно на каждом производственном сервере вместо того, чтобы предварительно перепаковать его), подобный инструмент необходим для того, чтобы избежать ошибок.
Идентификатор сборки, используемый вашим приложением, хранится в файловой системе в текстовом файле BUILD_ID в вашем каталоге сборки, который по .next .
$ npm i next-build-id Этот модуль экспортирует две функции, одна из которых является асинхронным (первичный экспорт) nextBuildId() и одна, которая является синхронной ( nextBuildId.sync() ). Обе функции принимают единый объект параметров, поддерживая одни и те же параметры, перечисленные ниже. Обе функции возвращают (или разрешают) строку, представляющую идентификатор сборки на основе GIT.
Поддерживаемые варианты:
dir (string, default process.cwd() ): каталог в местном репозитории GIT
Использование __dirname из вашего следующего модуля. Config.js, как правило, безопасно. Предполагается, что значение по умолчанию является каталогом, из которого вы выполняете next build , но это может быть неправильно в зависимости от того, как вы строите свое приложение health.js.
describe (Boolean, false по умолчанию): Используйте описание тега GIT вместо последнего коммита SHA
Укажите это как true использование git describe --tags вместо git rev-parse HEAD для создания идентификатора сборки. Если в вашем локальном репозитории GIT нет тегов, но последняя коммита SHA будет использоваться вместо этого, если вы также не указаете fallbackToSha: false .
fallbackToSha (Boolean, Default true ): запасная сторона последнего Commit SHA при describe: true и никаких тегов не существует
Применяется только при использовании describe: true . Если вы хотите быть строгим в отношении требования использования (и присутствия) тегов, то отключите это с помощью fallbackToSha: false , в этом случае ошибка будет выбрана, если не будет тегов.
Обратите внимание, что этот модуль действительно предоставляет общий способ получить идентификатор или строку статуса для любого локального репозитория GIT, что означает, что он не связан с Next.js каким -либо образом - он зависит только от того, как вы его используете.
ISC © Эндрю Гуд