Skip to main content

Enterprise Server 3.22 в настоящее время доступен в качестве кандидата на выпуск.

Работа с реестром npm

Npm можно настроить для публикации пакетов и использования пакетов GitHub Packages , хранящихся GitHub Packages в качестве зависимостей в проекте npm.

Примечание.

Этот тип пакета может быть недоступен для вашего экземпляра, так как администраторы сайта могут включить или отключить каждый поддерживаемый тип пакета. Дополнительные сведения см. в разделе Настройка поддержки экосистемы пакетов для предприятия.

Ограничения для опубликованных версий 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него.

  1. Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе "Проверка подлинности в GitHub Packages.
  2. В том же каталоге, что package.json и файл, создайте или измените .npmrc файл, чтобы включить строку, указывающую URL-адрес GitHub Packages и пространство имен, в котором размещен пакет. Замените NAMESPACE именем учетной записи пользователя или организации , который владеет репозиторием, содержащим проект.

Если изоляция поддомена включена:

@NAMESPACE:registry=https://npm.HOSTNAME

Если изоляция поддомена отключена:

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Добавьте файл NPMRC в репозиторий, где GitHub Packages может найти ваш проект. Дополнительные сведения см. в разделе Добавление файла в репозиторий.

  2. Проверьте имя пакета в проекте package.json. Поле name должно содержать область и имя пакета. Например, если пакет называется "test", и вы публикуете его в организации "My-org" GitHub , name поле в вашем package.json поле должно быть @my-org/test.

  3. repository Проверьте поле в проектеpackage.json. Значение поля repository должно соответствовать URL-адресу репозитория GitHub. Например, если URL-адрес репозитория — это github.com/my-org/test, значением поля репозитория должно быть https://github.com/my-org/test.git.

  4. Публикация пакета:

    npm publish
    

Публикация пакета с помощью publishConfig файла package.json

Элемент в publishConfig файле можно использовать package.json для указания реестра, в котором требуется опубликовать пакет. Дополнительные сведения см . в статье publishConfig в документации по npm.

  1. Измените package.json файл пакета и добавьте publishConfig запись.

    Если у экземпляра включена изоляция поддомена:

    "publishConfig": {
      "registry": "https://npm. HOSTNAME/"
    },
    

    Если у экземпляра отключена изоляция поддомена:

    "publishConfig": {
      "registry": "https://HOSTNAME/_registry/npm/"
    },
    
  2. repository Проверьте поле в проектеpackage.json. Значение поля repository должно соответствовать URL-адресу репозитория GitHub. Например, если URL-адрес репозитория — это github.com/my-org/test, значением поля репозитория должно быть https://github.com/my-org/test.git.

  3. Публикация пакета:

    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 .

  1. Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе "Проверка подлинности в GitHub Packages.
  2. В том же каталоге, что package.json и файл, создайте или измените .npmrc файл, чтобы включить строку, указывающую URL-адрес GitHub Packages и пространство имен, в котором размещен пакет. Замените NAMESPACE именем учетной записи пользователя или организации , который владеет репозиторием, содержащим проект.

Если изоляция поддомена включена:

@NAMESPACE:registry=https://npm.HOSTNAME

Если изоляция поддомена отключена:

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Добавьте файл NPMRC в репозиторий, где GitHub Packages может найти ваш проект. Дополнительные сведения см. в разделе Добавление файла в репозиторий.

  2. Настройте 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"
      }
    }
    
  3. Установите пакет .

    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".