← Cloudflare Pages / pages / how-to
Установка приватных пакетов
Cloudflare Pages поддерживает пользовательские реестры пакетов, что позволяет включать приватные зависимости в приложение. Хотя это руководство сосредоточено именно на npm ↗, менеджер пакетов и реестр Node, тот же подход можно применить и к другим инструментам реестра.
Вам предстоит настроить переменные окружения в вашем проекте Pages, в Настройки. Существующий сайт можно изменить в любое время, но эти настройки можно задать и при инициализации новых проектов. В любом случае изменения настроек проекта вступят в силу только при следующем развертывании.
Registry Access Token
В любом реестре пакетов должна быть возможность выпускать новые токены доступа. В идеале стоит создать отдельный токен именно для Pages, как и для любой другой платформы CI/CD.
С помощью npm можно создавать и просматривать токены на своём сайте ↗ или вы можете использовать npm CLI. Если CLI уже настроен локально и вы прошли аутентификацию, выполните в терминале следующие команды:
# Verify the current npm user is correct
npm whoami
# Create a readonly token
npm token create --read-only
#-> Enter password, if prompted
#-> Enter 2FA code, if configuredВ результате будет создан токен только для чтения, похожий на строку UUID. Сохраните это значение для одного из следующих шагов.
Приватные модули в реестре npm
Следующий раздел относится к пользователям, чьи приложения используют только приватные модули из реестра npm.
В проекте Pages в Настройки > Переменные окружения, добавьте новый переменная окружения с именем NPM_TOKEN к Production и Предпросмотр окружения и вставьте созданный вами токен только для чтения в качестве значения.
По умолчанию npm ищет переменную окружения с именем NPM_TOKEN и поскольку вы не определили пользовательская конечная точка реестра, по умолчанию используется реестр npm. Локальная разработка должна продолжать работать как обычно, если вы и ваша команда авторизованы в аккаунтах npm (см. npm whoami и npm login) которым предоставлен доступ к приватному пакету (пакетам).
Пользовательские конечные точки реестра
Если используется несколько реестров, проекту потребуется определить собственный корневой .npmrc ↗ файл конфигурации. Пример .npmrc файл может выглядеть так:
@foobar:registry=https://npm.pkg.github.com
//registry.npmjs.org/:_authToken=${TOKEN_FOR_NPM}
//npm.pkg.github.com/:_authToken=${TOKEN_FOR_GITHUB}Здесь все пакеты в каталоге @foobar scope направляются в реестр GitHub Packages. Затем каждому реестру назначаются собственные токены доступа через свои переменные окружения.
После этого в проекте Pages должен быть соответствующий переменные окружения определено для всех окружений. В нашем примере это означает TOKEN_FOR_NPM должен содержать токен npm только для чтения значение и TOKEN_FOR_GITHUB должен содержать собственный личный токен доступа ↗.
Управление несколькими окружениями
Если локальная разработка перестает работать с вашим новым .npmrc файл, вам нужно будет внести несколько дополнительных изменений:
-
Переименуйте Pages-совместимый
.npmrcфайл в.npmrc.pages. Здесь должна быть ссылка на переменные окружения. -
Восстановите предыдущий
.npmrcфайл с версией, которая ранее работала у вас и ваших коллег. -
Перейдите в Workers & Pages в Cloudflare dashboard.
Перейдите в Workers & Pages ↗ -
Выберите свой проект Pages.
-
Перейдите в Настройки > Переменные окружения, добавьте новый переменная окружения с именем
NPM_CONFIG_USERCONFIG↗ и присвойте ей значение/opt/buildhome/repo/.npmrc.pages. Если ваш.npmrc.pagesфайл находится не в корневом каталоге проекта, скорректируйте путь соответствующим образом.