Примечание.
Этот тип пакета может быть недоступен для вашего экземпляра, так как администраторы сайта могут включить или отключить каждый поддерживаемый тип пакета. Дополнительные сведения см. в разделе Настройка поддержки экосистемы пакетов для предприятия.
Ограничения для опубликованных версий npm
При публикации более 1000 версий GitHub Packagesпакетов npm могут возникнуть проблемы с производительностью и время ожидания во время использования.
В будущем, чтобы повысить производительность службы, вы не сможете публиковать более 1000 версий пакета GitHub. Все версии, опубликованные до достижения этого ограничения, по-прежнему будут доступны для чтения.
Если вы достигнете этого предела, рассмотрите возможность удаления версий пакетов или обращения в службу поддержки для получения справки. При принудительном применении этого ограничения наша документация будет обновлена с помощью способа ее обхода. Дополнительные сведения см. в разделе [AUTOTITLE или Удаление и восстановление пакета](/packages/learn-github-packages/introduction-to-github-packages#contacting-support).
Аутентификация в GitHub Packages
Примечание.
GitHub Packages поддерживает только проверку подлинности с помощью personal access token (classic). Дополнительные сведения см. в разделе Управление личными маркерами доступа.
Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.
Можно использовать personal access token (classic) для проверки подлинности в API GitHub Packages или API GitHub . При создании personal access token (classic)можно назначить маркер различным областям в зависимости от ваших потребностей. Дополнительные сведения о областях, связанных с пакетами, для personal access token (classic), см. в разделе Сведения о разрешениях для пакетов GitHub.
Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:
GITHUB_TOKENдля публикации пакетов, связанных с репозиторием рабочих процессов.- personal access token (classic) с по крайней мере
read:packagesобластью действия для установки пакетов, связанных с другими частными репозиториями (GITHUB_TOKENможно использовать, если репозиторий предоставлен доступ на чтение к пакету. См . раздел AUTOTITLE.
Аутентификация с помощью personal access token
Необходимо использовать personal access token (classic) с соответствующими областями для публикации и установки пакетов в GitHub Packages. Дополнительные сведения см. в разделе Введение в GitHub Packages.
Вы можете выполнить проверку подлинности с помощью npm, изменив GitHub Packages файл для каждого пользователя ~/.npmrc , чтобы включить или personal access token (classic) войти в npm в командной строке с помощью имени пользователя и personal access token.
Чтобы выполнить проверку подлинности путем добавления personal access token (classic)~/.npmrc файла в файл, измените ~/.npmrc файл для проекта, чтобы включить следующую строку, заменив HOSTNAME именем ваш экземпляр GitHub Enterprise Server узла и ТОКЕНом personal access token. Создайте файл ~/.npmrc , если он не существует.
Если у экземпляра включена изоляция поддомена:
//npm.HOSTNAME//:_authToken=TOKEN
Если у экземпляра отключена изоляция поддомена:
//HOSTNAME/_registry/npm/:_authToken=TOKEN
Чтобы выполнить проверку подлинности, выполнив вход в npm, используйте npm login команду, заменив имя пользователя именем пользователя, TOKEN с GitHubвашим personal access token (classic) именем пользователя и общедоступнымEMAIL-ADDRESS адресом электронной почты.
Если вы используете npm CLI версии 9 или более поздней версии и войдите в частный реестр или выходите из частного реестра с помощью командной строки, используйте --auth-type=legacy параметр для чтения сведений о проверке подлинности из запросов вместо использования потока входа по умолчанию через браузер. Дополнительные сведения см. в разделе npm-login.
Если GitHub Packages вы не являетесь реестром пакетов по умолчанию для использования npm и хотите использовать npm audit команду, рекомендуется использовать --scope флаг с пространством имен, на котором размещается пакет (личная учетная запись или организация пакет) при проверке подлинностиGitHub Packages.
Если у экземпляра включена изоляция поддомена:
$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
Если у экземпляра отключена изоляция поддомена:
$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
Публикация пакета
Примечание.
Имена пакетов и области должны использовать только строчные буквы.
По умолчанию пакет публикуется в репозитории, который указывается в GitHubname поле package.json файла. Например, вы опубликуете пакет с именем @my-org/test в репозитории my-org/testGitHub . Вы можете опубликовать несколько пакетов в одном GitHub репозитории, включив repository поле в package.json файл. Дополнительные сведения см. в статье "Публикация нескольких пакетов в одном репозитории".
Сопоставление областей для проекта можно настроить с помощью локального .npmrc файла в проекте или с помощью publishConfig параметра .package.json
GitHub Packages поддерживает только пакеты npm с областью действия. Имена пакетов с ограниченной областью имеют формат @NAMESPACE/PACKAGE-NAME. Пакеты с ограниченной областью всегда начинаются с символа @. Возможно, вам потребуется обновить имя в вашем package.json имени, чтобы использовать имя области. Например, если вы являетесь пользователем octocat и именем testпакета, назначьте имя пакета с областью следующим образом: "name": "@octocat/test"
После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в разделе Просмотр пакетов.
Публикация пакета с помощью локального .npmrc файла
Файл можно использовать .npmrc для настройки сопоставления областей для проекта.
.npmrc В файле используйте URL-адрес и владельца учетной GitHub Packages записи, чтобы GitHub Packages определить, куда направлять запросы пакетов.
.npmrc Использование файла запрещает другим разработчикам случайно публиковать пакет в npmjs.org вместо GitHub Packagesнего.
- Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе "Проверка подлинности в GitHub Packages.
- В том же каталоге, что
package.jsonи файл, создайте или измените.npmrcфайл, чтобы включить строку, указывающую URL-адрес GitHub Packages и пространство имен, в котором размещен пакет. ЗаменитеNAMESPACEименем учетной записи пользователя или организации , который владеет репозиторием, содержащим проект.
Если изоляция поддомена включена:
@NAMESPACE:registry=https://npm.HOSTNAME
Если изоляция поддомена отключена:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
-
Добавьте файл NPMRC в репозиторий, где GitHub Packages может найти ваш проект. Дополнительные сведения см. в разделе Добавление файла в репозиторий.
-
Проверьте имя пакета в проекте
package.json. Полеnameдолжно содержать область и имя пакета. Например, если пакет называется "test", и вы публикуете его в организации "My-org" GitHub ,nameполе в вашемpackage.jsonполе должно быть@my-org/test. -
repositoryПроверьте поле в проектеpackage.json. Значение поляrepositoryдолжно соответствовать URL-адресу репозитория GitHub. Например, если URL-адрес репозитория — этоgithub.com/my-org/test, значением поля репозитория должно бытьhttps://github.com/my-org/test.git. -
Публикация пакета:
npm publish
Публикация пакета с помощью publishConfig файла package.json
Элемент в publishConfig файле можно использовать package.json для указания реестра, в котором требуется опубликовать пакет. Дополнительные сведения см . в статье publishConfig в документации по npm.
-
Измените
package.jsonфайл пакета и добавьтеpublishConfigзапись.Если у экземпляра включена изоляция поддомена:
"publishConfig": { "registry": "https://npm. HOSTNAME/" },Если у экземпляра отключена изоляция поддомена:
"publishConfig": { "registry": "https://HOSTNAME/_registry/npm/" }, -
repositoryПроверьте поле в проектеpackage.json. Значение поляrepositoryдолжно соответствовать URL-адресу репозитория GitHub. Например, если URL-адрес репозитория — этоgithub.com/my-org/test, значением поля репозитория должно бытьhttps://github.com/my-org/test.git. -
Публикация пакета:
npm publish
Публикация нескольких пакетов в одном репозитории
Чтобы опубликовать несколько пакетов с одинаковым репозиторием, можно включить URL-адрес GitHub репозитория в repository поле package.json файла для каждого пакета. Дополнительные сведения см. в разделе "Создание файла package.json" и "Создание модулей Node.js" в документации npm.
Чтобы убедиться, что URL-адрес репозитория правильный, замените REPOSITORY именем репозитория, содержащего пакет, который требуется опубликовать, и OWNER именем личной учетной записи или организации, GitHub в которой принадлежит репозиторий.
GitHub Packages будет соответствовать репозиторию на основе URL-адреса, а не на основе имени пакета.
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
Установка пакета
Пакеты можно установить, GitHub Packages добавив их в качестве зависимостей в package.json файле проекта. Дополнительные сведения об использовании package.json в проекте см. в статье "Работа с package.json" в документации npm.
По умолчанию вы можете добавлять пакеты из одной организации. Дополнительные сведения см. в разделе "Установка пакетов из других организаций".
Кроме того, необходимо добавить файл в .npmrc проект, чтобы все запросы на установку пакетов проходили.GitHub Packages При маршрутизации всех запросов GitHub Packagesпакетов можно использовать как области, так и неуправляемые пакеты из npmjs.org. Дополнительные сведения см. в документации по npm .
- Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе "Проверка подлинности в GitHub Packages.
- В том же каталоге, что
package.jsonи файл, создайте или измените.npmrcфайл, чтобы включить строку, указывающую URL-адрес GitHub Packages и пространство имен, в котором размещен пакет. ЗаменитеNAMESPACEименем учетной записи пользователя или организации , который владеет репозиторием, содержащим проект.
Если изоляция поддомена включена:
@NAMESPACE:registry=https://npm.HOSTNAME
Если изоляция поддомена отключена:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
-
Добавьте файл NPMRC в репозиторий, где GitHub Packages может найти ваш проект. Дополнительные сведения см. в разделе Добавление файла в репозиторий.
-
Настройте
package.jsonв проекте использование устанавливаемого пакета. Чтобы добавить зависимости пакета вpackage.jsonфайл GitHub Packages, укажите полное имя пакета, например@my-org/server. Для пакетов из npmjs.com укажите полное имя, такое как@babel/coreилиlodash. ЗаменитеORGANIZATION_NAME/PACKAGE_NAMEзависимостью пакета.{ "name": "@my-org/server", "version": "1.0.0", "description": "Server app that uses the ORGANIZATION_NAME/PACKAGE_NAME package", "main": "index.js", "author": "", "license": "MIT", "dependencies": { "ORGANIZATION_NAME/PACKAGE_NAME": "1.0.0" } } -
Установите пакет .
npm install
Установка пакетов из других организаций
По умолчанию можно использовать GitHub Packages только пакеты из одной организации. Если вы хотите перенаправить запросы пакетов нескольким организациям и пользователям, вы можете добавить в файл дополнительные строки .npmrc , заменив HOSTNAME на имя ваш экземпляр GitHub Enterprise Server узла и NAMESPACE имя личной учетной записи или организации , которому принадлежит репозиторий, содержащий проект.
Если у экземпляра включена изоляция поддомена:
@NAMESPACE:registry=https://npm.HOSTNAME
@NAMESPACE:registry=https://npm.HOSTNAME
Если у экземпляра отключена изоляция поддомена:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
Использование официального реестра npm
GitHub Packages позволяет получить доступ к официальному реестру npm по адресу registry.npmjs.com, если GitHub Enterprise Server администратор включил эту функцию. Дополнительные сведения см. в разделе "Подключение к официальному реестру npm".