

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso de npm
<a name="packages-npm"></a>

Esses tópicos descrevem como você pode usar `npm` o gerenciador de pacotes Node.js com CodeCatalyst.

**nota**  
CodeCatalyst suportes `node v4.9.1` e mais tarde `npm v5.0.0` e mais tarde.

**Topics**
+ [Configuração e uso de npm](packages-npm-use.md)
+ [Tratamento de tags npm](packages-npm-tags.md)

# Configuração e uso de npm
<a name="packages-npm-use"></a>

Para usar `npm` com CodeCatalyst, você deve se conectar `npm` ao seu repositório de pacotes e fornecer um token de acesso pessoal (PAT) para autenticação. Você pode ver as instruções para se conectar `npm` ao seu repositório de pacotes no CodeCatalyst console.

**Contents**
+ [Configurando o npm com CodeCatalyst](#npm-configure)
+ [Instalando pacotes npm a partir de um repositório de CodeCatalyst pacotes](#npm-install)
+ [Instalando pacotes npm do npmjs por meio de CodeCatalyst](#npm-install-npmjs)
+ [Publicando pacotes npm em seu repositório de CodeCatalyst pacotes](#npm-publish)
+ [Suporte para comandos npm](#npm-commands)
  + [Comandos compatíveis que interagem com um repositório de pacotes](#supported-commands-that-interact-with-a-repository)
  + [Comandos do lado do cliente compatíveis](#supported-client-side-commands)
  + [Comandos incompatíveis](#unsupported-commands)

## Configurando o npm com CodeCatalyst
<a name="npm-configure"></a>

As instruções a seguir explicam como se autenticar e se conectar `npm` ao seu repositório de CodeCatalyst pacotes. Para ter mais informações sobre o npm, consulte a [documentação oficial do npm](https://docs.npmjs.com/).

**Para se conectar `npm` ao seu repositório de CodeCatalyst pacotes**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navegue até o projeto.

1. No painel de navegação, selecione **Packages (pacotes)**.

1. Escolha o repositório de pacotes na lista.

1. Selecione **Conectar ao repositório**.

1. Em **Detalhes da configuração**, no **Cliente do Package Manager**, selecione **Cliente do npm**.

1. Escolha o sistema operacional para ver as etapas de configuração correspondentes.

1. É necessário um token de acesso pessoal (PAT) para autenticar o npm com. CodeCatalyst Se você já possui um token, poderá usá-lo. Caso contrário, você pode criar um usando as etapas a seguir.

   1. **(Opcional):** atualize o **Nome do PAT** e a **Data de expiração**.

   1. Selecione **Criar token**.

   1. Copie e guarde o PAT em um local seguro.
**Atenção**  
Você não poderá ver ou copiar seu PAT novamente depois de fechar a caixa de diálogo. As credenciais devem ser de curta duração para minimizar o tempo que um invasor pode usar as credenciais após usá-las indevidamente.

1. Execute os comandos a seguir no diretório raiz do projeto para configurar o npm com seu repositório de pacotes. Os comandos farão o seguinte:
   + Crie um arquivo `.npmrc` no nível do projeto se o seu projeto não tiver um.
   + Adicione as informações do endpoint do repositório de pacotes ao arquivo `.npmrc` no nível do projeto.
   + Adicione suas credenciais (PAT) ao arquivo `.npmrc` no nível do usuário.

   Substitua os valores a seguir.
**nota**  
Se você estiver copiando as instruções do console, os valores nos comandos a seguir serão atualizados e não precisarão ser alterados.
   + *username*Substitua CodeCatalyst pelo seu nome de usuário.
   + *PAT*Substitua por seu CodeCatalyst PAT.
   + *space\$1name*Substitua pelo nome do seu CodeCatalyst espaço.
   + *proj\$1name*Substitua pelo nome CodeCatalyst do seu projeto.
   + *repo\$1name*Substitua pelo nome CodeCatalyst do repositório do pacote.

   ```
   npm set registry=https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/ --location project
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:_authToken=username:PAT
   ```

   **Para npm 6 ou inferior:** para fazer com que o npm sempre passe o token de autenticação para CodeCatalyst, mesmo para `GET` solicitações, defina a variável de configuração always-auth da seguinte forma. `npm config set`

   ```
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:always-auth=true --location project
   ```

## Instalando pacotes npm a partir de um repositório de CodeCatalyst pacotes
<a name="npm-install"></a>

Depois de conectar o npm ao seu repositório seguindo as etapas em [Configurando o npm com CodeCatalyst](#npm-configure), você pode executar comandos `npm` no seu repositório.

Você pode instalar um pacote npm que esteja no seu repositório de CodeCatalyst pacotes ou em um de seus repositórios upstream com o comando. `npm install`

```
npm install lodash
```

## Instalando pacotes npm do npmjs por meio de CodeCatalyst
<a name="npm-install-npmjs"></a>

Você pode instalar pacotes npm do [npmjs.com](https://www.npmjs.com/) por meio de um repositório configurando o CodeCatalyst repositório com uma conexão upstream com o repositório do gateway conectado ao npmjs.com,. **npm-public-registry-gateway** Os pacotes instalados em npmjs são ingeridos e armazenados no repositório de gateway e no repositório de pacotes downstream mais distante.

**Para instalar pacotes do npmjs**

1. Se você ainda não tiver feito isso, configure `npm` com seu repositório de CodeCatalyst pacotes seguindo as etapas em[Configurando o npm com CodeCatalyst](#npm-configure). 

1. Verifique se seu repositório adicionou o repositório do gateway, **npm-public-registry-gateway**, como uma conexão upstream. Você pode verificar quais fontes upstream foram adicionadas ou adicionadas **npm-public-registry-gateway**como fonte upstream seguindo as instruções [Adição de um repositório upstream](packages-upstream-repositories-add.md) e escolhendo o **npm-public-registry-gateway**repositório.

1. Instale pacotes com o comando `npm install`.

   ```
   npm install package_name
   ```

Para ter mais informações sobre como solicitar pacotes de repositórios upstream, consulte [Solicitar uma versão do pacote com repositórios upstream](packages-upstream-repositories-request.md).

## Publicando pacotes npm em seu repositório de CodeCatalyst pacotes
<a name="npm-publish"></a>

Depois de concluir [Configurando o npm com CodeCatalyst](#npm-configure), você pode executar comandos `npm`.

Você pode publicar um pacote npm em um repositório de CodeCatalyst pacotes com o `npm publish` comando.

```
npm publish
```

Para ter informações sobre como criar pacotes do npm, consulte [Criação de módulos Node.js](https://docs.npmjs.com/getting-started/creating-node-modules) no *Documento do npm*.

## Suporte para comandos npm
<a name="npm-commands"></a>

As seções a seguir resumem os `npm` comandos que são suportados pelos repositórios de CodeCatalyst pacotes, além de listar comandos específicos que não são suportados.

**Topics**
+ [Comandos compatíveis que interagem com um repositório de pacotes](#supported-commands-that-interact-with-a-repository)
+ [Comandos do lado do cliente compatíveis](#supported-client-side-commands)
+ [Comandos incompatíveis](#unsupported-commands)

### Comandos compatíveis que interagem com um repositório de pacotes
<a name="supported-commands-that-interact-with-a-repository"></a>

Esta seção lista os comandos `npm` em que o cliente `npm` faz uma ou mais solicitações ao registro no qual foi configurado (por exemplo, `npm config set registry`). Verificou-se que esses comandos funcionam corretamente quando invocados em um repositório de CodeCatalyst pacotes.


****  

| Command | Description | 
| --- | --- | 
|   [bugs](https://docs.npmjs.com/cli/bugs)   |  Adivinha a localização do URL do rastreador de bugs de um pacote e, depois, tenta abri-lo.  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  Instala um projeto do zero.  | 
|   [deprecate](https://docs.npmjs.com/cli/deprecate)   |  Deprecia uma versão de um pacote.  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  Modifica as tags de distribuição do pacote.  | 
|   [docs](https://docs.npmjs.com/cli/docs)   |  Adivinha a localização do URL de documentação de um pacote e, depois, tenta abri-lo usando o parâmetro de configuração `--browser`.  | 
|   [doctor](https://docs.npmjs.com/cli/doctor)   |  Executa um conjunto de verificações para validar se sua instalação do npm pode gerenciar seus JavaScript pacotes.  | 
|   [install](https://docs.npmjs.com/cli/install)   |  Instala um pacote.  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  Instala um projeto do zero e executa testes. Alias: `npm cit`. Esse comando executa um `npm ci`, seguido imediatamente por um `npm test`.  | 
|   [install-test](https://docs.npmjs.com/cli/install-test)   |  Instala o pacote e executa testes. Executa um `npm install`, seguido imediatamente por um `npm test`.  | 
|   [outdated](https://docs.npmjs.com/cli/outdated)   |  Verifica o registro configurado para determinar se algum pacote instalado está desatualizado.  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  Faz ping no registro npm configurado ou fornecido e verifica a autenticação.  | 
|   [publish](https://docs.npmjs.com/cli/publish)   |  Publica uma versão do pacote no registro.  | 
|   [update](https://docs.npmjs.com/cli/update)   |  Adivinha a localização do URL do repositório de um pacote e, depois, tenta abri-lo usando o parâmetro de configuração `--browser`.  | 
|   [view](https://docs.npmjs.com/cli/view)   |  Exibe os metadados do pacote. Também pode ser usado para imprimir propriedades de metadados.  | 

### Comandos do lado do cliente compatíveis
<a name="supported-client-side-commands"></a>

Esses comandos não exigem nenhuma interação direta com um repositório de pacotes, portanto, CodeCatalyst não exigem nada para suportá-los.


****  

| Command | Description | 
| --- | --- | 
|   [bin (legado)](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  Exibe o diretório npm `bin`.  | 
|   [build](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  Cria um pacote.  | 
|   [cache](https://docs.npmjs.com/cli/cache)   |  Manipula o cache de pacotes.  | 
|   [completion](https://docs.npmjs.com/cli/completion)   |  Ativa o preenchimento de guias em todos os comandos npm.  | 
|   [config](https://docs.npmjs.com/cli/config)   |  Atualiza o conteúdo do usuário e dos arquivos `npmrc` globais.  | 
|   [dedupe](https://docs.npmjs.com/cli/dedupe)   |  Pesquisa a árvore de pacotes local e tenta simplificar a estrutura movendo as dependências mais para cima na árvore, onde elas podem ser compartilhadas com mais eficiência por vários pacotes dependentes.  | 
|   [edit](https://docs.npmjs.com/cli/edit)   |  Edita um pacote instalado. Seleciona uma dependência no diretório de trabalho atual e abre o diretório do pacote no editor padrão.  | 
|   [explore](https://docs.npmjs.com/cli/explore)   |  Navega por um pacote instalado. Gera um subshell no diretório do pacote instalado especificado. Se um comando for especificado, ele será executado no subshell, que será encerrado imediatamente.  | 
|   [help](https://docs.npmjs.com/cli/help)   |  Recebe ajuda no npm.  | 
|   [help-search](https://docs.npmjs.com/cli/help-search)   |  Pesquisa a documentação de ajuda do npm.  | 
|   [init](https://docs.npmjs.com/cli/init)   |  Cria um arquivo `package.json`.  | 
|   [link](https://docs.npmjs.com/cli/link)   |  Vincula um diretório de pacotes.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  Lista pacotes instalados.  | 
|   [pack](https://docs.npmjs.com/cli/pack)   |  Cria um tarball a partir de um pacote.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  Exibe um prefixo. Esse é o diretório pai mais próximo que contém um arquivo `package.json`, a menos que `-g` também seja especificado.  | 
|   [prune](https://docs.npmjs.com/cli/prune)   |  Remove pacotes que não estão listados na lista de dependências do pacote pai.  | 
|   [rebuild](https://docs.npmjs.com/cli/rebuild)   |  Executa o comando `npm build` nas pastas correspondentes.  | 
|   [restart](https://docs.npmjs.com/cli/restart)   |  Executa os scripts de parada, reinicialização e inicialização de um pacote e os scripts anteriores e posteriores associados.  | 
|   [raiz](https://docs.npmjs.com/cli/root)   |  Imprime o diretório `node_modules` efetivo na saída padrão.  | 
|   [run-script](https://docs.npmjs.com/cli/run-script)   |  Executa scripts de pacotes arbitrários.  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  Bloqueia as versões de dependência para publicação.  | 
|   [uninstall](https://docs.npmjs.com/cli/uninstall)   |  Desinstala um pacote.  | 

### Comandos incompatíveis
<a name="unsupported-commands"></a>

Esses `npm` comandos não são compatíveis com repositórios de CodeCatalyst pacotes.


****  

| Command | Description | Observações | 
| --- | --- | --- | 
|   [access](https://docs.npmjs.com/cli/access)   |  Define o nível de acesso nos pacotes publicados.  |  CodeCatalyst usa um modelo de permissão diferente do repositório público npmjs.  | 
|   [adduser](https://docs.npmjs.com/cli/adduser)   |  Adiciona uma conta de usuário de registro  |  CodeCatalyst usa um modelo de usuário diferente do repositório público npmjs.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  Executa uma auditoria de segurança.  |  CodeCatalyst atualmente não vende dados de vulnerabilidade de segurança.  | 
|   [hook](https://docs.npmjs.com/cli/v9/commands/npm-hook)   |  Gerencia hooks do npm, incluindo adição, remoção, listagem e atualização.  |  CodeCatalyst atualmente não oferece suporte a nenhum mecanismo de notificação de alterações.  | 
|   [login](https://docs.npmjs.com/cli-commands/adduser.html)   |  Autentica um usuário. Este é um alias para `npm adduser`.   |  CodeCatalyst usa um modelo de autenticação diferente do repositório público npmjs. Para mais informações, consulte [Configurando o npm com CodeCatalyst](#npm-configure).  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Sai do registro.  |  CodeCatalyst usa um modelo de autenticação diferente do repositório público npmjs. Não há como sair de um CodeCatalyst repositório, mas os tokens de autenticação expiram após o tempo de expiração configurável. A duração padrão do token é de 12 horas.   | 
|   [owner](https://docs.npmjs.com/cli/owner)   |  Gerencia proprietários de pacotes.  |  CodeCatalyst usa um modelo de permissões diferente do repositório público npmjs.  | 
|   [profile](https://docs.npmjs.com/cli/profile)   |  Altera as configurações no seu perfil de registro.  |  CodeCatalyst usa um modelo de usuário diferente do repositório público npmjs.  | 
|   [pesquisa](https://docs.npmjs.com/cli/search)   |  Pesquisa no registro por pacotes que correspondam aos termos de pesquisa.  |  CodeCatalyst não suporta o `search` comando.  | 
|   [star](https://docs.npmjs.com/cli/star)   |  Marca seus pacotes favoritos.  |  CodeCatalyst atualmente não suporta nenhum mecanismo de favoritos.  | 
|   [stars](https://docs.npmjs.com/cli/stars)   |  Exibe pacotes marcados como favoritos.  |  CodeCatalyst atualmente não suporta nenhum mecanismo de favoritos.  | 
|   [team](https://docs.npmjs.com/cli/team)   |  Gerencia equipes e associações de equipes.  |  CodeCatalyst usa um modelo de associação de usuário e grupo diferente do repositório público npmjs.  | 
|   [token](https://docs.npmjs.com/cli/token)   |  Gerencia seus tokens de autenticação.  |  CodeCatalyst usa um modelo diferente para obter tokens de autenticação. Para mais informações, consulte [Configurando o npm com CodeCatalyst](#npm-configure).  | 
|   [unpublish](https://docs.npmjs.com/cli/unpublish)   |  Remove um pacote do registro.  |  CodeCatalyst não suporta a remoção de uma versão de pacote de um repositório usando o cliente npm. É possível excluir um pacote no console.  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Exibe o nome do usuário npm.  |  CodeCatalyst usa um modelo de usuário diferente do repositório público npmjs.  | 

# Tratamento de tags npm
<a name="packages-npm-tags"></a>

Os registros npm são compatíveis com *tags*, que são aliases de string para versões de pacotes. Você pode usar tags para proporcionar um alias em vez de usar números de versão. Por exemplo, você tem um projeto com vários fluxos de desenvolvimento e usa uma tag diferente (por exemplo, `stable`, `beta`, `dev`, `canary`) para cada fluxo. Para ver mais informações, consulte [dist-tag](https://docs.npmjs.com/cli/dist-tag) no *Documento do npm*. 

Por padrão, o npm usa a tag `latest` para identificar a versão atual de um pacote. `npm install pkg` (sem especificador de `@version` ou `@tag`) instala a tag mais recente. Normalmente, os projetos usam a tag mais recente para versões de lançamento estáveis. Outras tags são usadas para versões instáveis ou de pré-lançamento. 

## Edição de tags com o cliente npm
<a name="editing-tags-with-the-npm-client"></a>

 Os três `npm dist-tag` comandos (`add`,`rm`, e`ls`) funcionam da mesma forma nos repositórios de CodeCatalyst pacotes e no registro [npm padrão](https://registry.npmjs.com/).

## Tags npm e repositórios upstream
<a name="packages-tags-and-upstreams"></a>

Quando `npm` solicita as tags de um pacote e as versões desse pacote também estão presentes em um repositório upstream, CodeCatalyst mescla as tags antes de devolvê-las ao cliente. Por exemplo, um repositório chamado `R` tem um repositório upstream chamado `U`. A tabela a seguir mostra as tags de um pacote chamado `web-helper` presente nos dois repositórios.


****  

| Repositório | Nome do pacote | Tags do pacote | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (alias para a versão 1.0.0)  | 
|  U  |  `web-helper`  |   *alpha* (alias para a versão 1.0.1)  | 

Nesse caso, quando o cliente npm busca as tags do pacote `web-helper` no repositório `R`, ele recebe as tags *latest* e *alpha*. As versões para as quais as tags apontam não mudarão.

Quando a mesma tag está presente no mesmo pacote no repositório upstream e local, CodeCatalyst usa a tag que foi atualizada *pela última vez*. Por exemplo, suponha que as tags no *webhelper* tenham sido modificadas para se parecerem com as seguintes.


****  

| Repositório | Nome do pacote | Tags do pacote | Última atualização | 
| --- | --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (alias para a versão 1.0.0)  |  1º de janeiro de 2023  | 
|  U  |  `web-helper`  |   *latest* (alias para a versão 1.0.1)  |  1º de junho de 2023  | 

Nesse caso, quando o cliente npm buscar as tags para o pacote *web-helper* do repositório `R`, a tag *latest* terá um alias para a versão *1.0.1*, pois ela foi atualizada na última vez. Isso facilita o consumo de novas versões de pacotes em um repositório upstream que ainda não estão presentes em um repositório local por meio da execução de `npm update`.