Esta versão do GitHub Enterprise será descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Working with the npm registry

Você pode configurar o npm para publicar pacotes no GitHub Package Registry e usar pacotes armazenados no GitHub Package Registry como dependências em um projeto npm.

GitHub Package Registry is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server, and GitHub AE.

Observação: GitHub Package Registry está atualmente em beta para GitHub Enterprise Server 2.22. To join the beta for sua instância do GitHub Enterprise Server, use the sign-up form.

Note: When installing or publishing a docker image, GitHub Package Registry does not currently support foreign layers, such as Windows images.

Autenticar-se no GitHub Package Registry

Você precisa de um token de acesso para publicar, instalar e excluir pacotes no GitHub Package Registry.

You can use a personal access token (PAT) to authenticate to GitHub Package Registry or the GitHub API. Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."

To authenticate to a GitHub Package Registry registry within a GitHub Actions workflow, you can use:

  • GITHUB_TOKEN to publish packages associated with the workflow repository.
  • a PAT to install packages associated with other private repositories (which GITHUB_TOKEN can't access).

For more information about GITHUB_TOKEN used in GitHub Actions workflows, see "Authentication in a workflow."

Efetuando a autenticação com um token de acesso pessoal

Você deve usar um token de acesso pessoal com os escopos apropriados para publicar e instalar pacotes no GitHub Package Registry. Para obter mais informações, consulte "Sobre GitHub Package Registry."

Você pode efetuar a autenticação no GitHub Package Registry com o npm editando seu arquivo ~/.npmrc por usuário para incluir o seu token de acesso pessoal ou fazer o login no npm na linha de comando usando seu nome de usuário e token de acesso pessoal.

Para efetuar a autenticação adicionando seu token de acesso pessoal ao seu arquivo ~/.npmrc, edite o arquivo ~/.npmrc para o seu projeto incluir a seguinte linha, substituindo HOSTNAME pelo nome de host de sua instância do GitHub Enterprise Server e TOKEN pelo seu token de acesso pessoal. Crie um novo arquivo ~/.npmrc se um não existir.

Se sua instância tem o isolamento de subdomínio habilitado:

//npm.HOSTNAME//:_authToken=TOKEN

Se sua instância tem o isolamento de subdomínio desabilitado:

$ npm login --registry=https://npm.pkg.github.com
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

Para efetuar a autenticação conectado no npm, use o comando npm login , substituindo o NOME DE USUÁRIO pelo seu nome de usuário do GitHub, o TOKEN pelo seu token de acesso pessoal e PUBLIC-EMAIL-ADDRESS pelo seu endereço de e-mail.

Se GitHub Package Registry não é seu registro de pacote padrão para usar npm e você deseja usar o comando npm audit , recomendamos que você use o sinalizador --scope com o proprietário do pacote quando você efetuar a autenticação no GitHub Package Registry.

Se sua instância tem o isolamento de subdomínio habilitado:

$ npm login --scope=@OWNER --registry=https://npm.HOSTNAME/

> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

Se sua instância tem o isolamento de subdomínio desabilitado:

$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

Publicar um pacote

Nota: Os nomes dos pacotes e escopos só devem usar letras minúsculas.

Por padrão, o GitHub Package Registry publica um pacote no repositório GitHub que você especificar no campo nome do arquivo package.json. Por exemplo, você publicaria um pacote denominado @my-org/test no repositório my-org/test do GitHub. Você pode adicionar um resumo da página de listagem do pacote incluindo um arquivo README.md no diretório do seu pacote. Para obter mais informações, consulte "Trabalhando com package.json" e "Como criar Módulos de Node.js" na documentação do npm.

Você pode publicar vários pacotes no mesmo repositório do GitHub incluindo um campo de URL no arquivo package.json. Para obter mais informações, consulte "Publicar vários pacotes no mesmo repositório".

É possível definir o mapeamento do escopo para o seu projeto usando um arquivo local .npmrc no projeto ou usando a opção publishConfig em package.json. GitHub Package Registry só é compatível com pacotes npm com escopo definido. Pacotes com escopo têm nomes no formato @owner/name. Os pacotes com escopo sempre começam pelo símbolo @. Talvez seja necessário atualizar o nome no package.json para usar o nome com escopo. Por exemplo, "name": "@codertocat/hello-world-npm".

Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, consulte "Visualizar pacotes".

Publicar um pacote usando o arquivo .npmrc local

Você pode usar um arquivo .npmrc para configurar o mapeamento do escopo para o seu projeto. No arquivo .npmrc, use a URL e o proprietário da conta de GitHub Package Registry para que GitHub Package Registry saiba onde rotear as solicitações de pacotes. O uso de um arquivo .npmrc impede que outros desenvolvedores publiquem acidentalmente o pacote no npmjs.org em vez de GitHub Package Registry.

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. No mesmo diretório que o arquivo package.json, crie ou edite um arquivo .npmrc para incluir uma linha especificando a URL GitHub Package Registry e o proprietário da conta. Substitua OWNER pelo nome do usuário ou da organização que possui o repositório que contém seu projeto.

    Se o isolamento de subdomínio estiver habilitado:

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

    Se o isolamento de subdomínio estiver desabilitado:

    @OWNER:registry=https://HOSTNAME/_registry/npm
  3. Adicione o arquivo .npmrc ao repositório, onde GitHub Package Registry pode encontrar seu projeto. Para obter mais informações, consulte "Adicionar um arquivo a um repositório usando a linha."

  4. Verifique o nome do pacote no package.json do seu projeto. O campo name (nome) deve conter o escopo e o nome do pacote. Por exemplo, se o pacote for chamado de "test" e você estiver publicando na organização "My-org" do GitHub, o campo name (nome) do seu package.json deverá ser @my-org/test.

  5. Verifique o campo repositório no package.json do seu projeto. O campo repositório deve corresponder à URL do seu repositório de GitHub. Por exemplo, se a URL do repositório for github.com/my-org/test, o campo do repositório deverá ser git://github.com/my-org/test.git.

  6. Publicar um pacote:

    $ npm publish

Publicar um pacote usando o publishConfig no arquivo package.json

Você pode usar o elemento publishConfig no arquivo package.json para especificar o registro onde você quer o pacote publicado. Para obter mais informações, consulte "publishConfig" na documentação npm.

  1. Edite o arquivo package.json do seu pacote e inclua uma entrada publishConfig.

    Se sua instância tem o isolamento de subdomínio habilitado:

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

    Se sua instância tem o isolamento de subdomínio desabilitado:

    "publishConfig": {
       "registry":"https://HOSTNAME/_registry/npm/"
     },
  2. Verifique o campo repositório no package.json do seu projeto. O campo repositório deve corresponder à URL do seu repositório de GitHub. Por exemplo, se a URL do repositório for github.com/my-org/test, o campo do repositório deverá ser git://github.com/my-org/test.git.

  3. Publicar um pacote:

    $ npm publish

Publicar vários pacotes no mesmo repositório

Para publicar vários pacotes no mesmo repositório, você pode incluir a URL do repositório do GitHub no campo repositório do arquivo package.json para cada pacote.

Para garantir que a URL do repositório esteja correta, substitua REPOSITÓRIO pelo nome do repositório que contém o pacote que você deseja publicar, e o PROPRIETÁRIO pelo nome de usuário ou conta de organização no GitHub que é proprietário do repositório.

O GitHub Package Registry corresponderá ao repositório baseado na URL, em vez de ser baseado no nome do pacote.

"repository":"https://HOSTNAME/OWNER/REPOSITORY",

Instalar um pacote

Você pode instalar pacotes do GitHub Package Registry adicionando os pacotes como dependências no arquivo package.json para o seu projeto. Para obter mais informações sobre como usar um pacote package.json no projeto, consulte "Trabalhar com package.json" na documentação npm.

Por padrão, você pode adicionar pacotes a partir de uma organização. Para obter mais informações, consulte Instalar pacotes de outras organizações."

Você também precisa adicionar o arquivo .npmrc ao seu projeto para que todas as solicitações de instalação passem pelo GitHub Package Registry. Ao encaminhar todas as solicitações através de GitHub Package Registry, você pode usar pacotes com escopo e sem escopo de npmjs.com. Para obter mais informações, consulte "npm-scope" na documentação npm.

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. No mesmo diretório que o arquivo package.json, crie ou edite um arquivo .npmrc para incluir uma linha especificando a URL GitHub Package Registry e o proprietário da conta. Substitua OWNER pelo nome do usuário ou da organização que possui o repositório que contém seu projeto.

    Se o isolamento de subdomínio estiver habilitado:

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

    Se o isolamento de subdomínio estiver desabilitado:

    @OWNER:registry=https://HOSTNAME/_registry/npm
  3. Adicione o arquivo .npmrc ao repositório, onde GitHub Package Registry pode encontrar seu projeto. Para obter mais informações, consulte "Adicionar um arquivo a um repositório usando a linha."

  4. Configure package.json no seu projeto para usar o pacote que você está instalando. Para adicionar as suas dependências de pacote ao arquivo package.json para GitHub Package Registry, especifique o nome do pacote com escopo completo, como, por exemplo, @my-org/server. Para pacotes do npmjs.com, especifique o nome completo, como @babel/core ou @lodash. Por exemplo, o arquivo package.json a seguir usa o pacote @octo-org/octo-app como uma dependência.

    {
      "name": "@my-org/server",
      "version": "1.0.0",
      "description": "Server app that uses the @octo-org/octo-app package",
      "main": "index.js",
      "author": "",
      "license": "MIT",
      "dependencies": {
        "@octo-org/octo-app": "1.0.0"
      }
    }
    
  5. Instale o pacote.

    $ npm install

Instalar pacotes de outras organizações

Por padrão, você só pode usar pacotes do GitHub Package Registry de uma organização. Se você deseja encaminhar solicitações de pacotes para várias organizações e usuários, você pode adicionar linhas adicionais ao seu arquivo .npmrc substituindo HOSTNAME pelo nome de host de sua instância do GitHub Enterprise Server e OWNER pelo nome do usuário ou da organização que é dono do repositório que contém o seu projeto.

Se sua instância tem o isolamento de subdomínio habilitado:

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

Se sua instância tem o isolamento de subdomínio desabilitado:

@OWNER:registry=https://HOSTNAME/_registry/npm
@OWNER:registry=https://HOSTNAME/_registry/npm

Leia mais

Esse documento ajudou você?Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.