INTEGRITY Документация

Установка приватных пакетов

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 файл, вам нужно будет внести несколько дополнительных изменений:

  1. Переименуйте Pages-совместимый .npmrc файл в .npmrc.pages. Здесь должна быть ссылка на переменные окружения.

  2. Восстановите предыдущий .npmrc файл с версией, которая ранее работала у вас и ваших коллег.

  3. Перейдите в Workers & Pages в Cloudflare dashboard.

    Перейдите в Workers & Pages ↗
  4. Выберите свой проект Pages.

  5. Перейдите в Настройки > Переменные окружения, добавьте новый переменная окружения с именем NPM_CONFIG_USERCONFIG и присвойте ей значение /opt/buildhome/repo/.npmrc.pages. Если ваш .npmrc.pages файл находится не в корневом каталоге проекта, скорректируйте путь соответствующим образом.