

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置并使用 npm
<a name="packages-npm-use"></a>

要`npm`与一起使用 CodeCatalyst，您必须`npm`连接到软件包存储库并提供用于身份验证的个人访问令牌 (PAT)。您可以在 CodeCatalyst 控制台中查看有关`npm`连接到软件包存储库的说明。

**Contents**
+ [使用以下命令配置 npm CodeCatalyst](#npm-configure)
+ [从软件包存储库安装 npm CodeCatalyst 软件包](#npm-install)
+ [通过 npmjs 安装 npm 软件包 CodeCatalyst](#npm-install-npmjs)
+ [将 npm 包发布到你的软件 CodeCatalyst 包存储库](#npm-publish)
+ [npm 命令支持](#npm-commands)
  + [与程序包存储库进行交互的受支持命令](#supported-commands-that-interact-with-a-repository)
  + [支持的客户端命令](#supported-client-side-commands)
  + [不受支持的命令](#unsupported-commands)

## 使用以下命令配置 npm CodeCatalyst
<a name="npm-configure"></a>

以下说明说明了如何进行身份验证并`npm`连接到您的 CodeCatalyst 软件包存储库。有关更多信息，请参阅 [npm 官方文档](https://docs.npmjs.com/)。

**`npm`连接到您的 CodeCatalyst 软件包存储库**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的项目。

1. 在导航窗格中，选择**程序包**。

1. 从列表中选择您的程序包存储库。

1. 选择**连接到存储库**。

1. 在**配置详细信息**中，在**程序包管理器客户端**中，选择 **npm 客户端**。

1. 选择您的操作系统以查看相应的配置步骤。

1. 需要个人访问令牌 (PAT) 才能对 npm 进行 CodeCatalyst身份验证。如果您已有令牌，则可使用它。如果没有，您可以使用以下步骤创建一个令牌。

   1. **（可选）：**更新 **PAT 名称**和**到期日期**。

   1. 选择**创建令牌**。

   1. 将 PAT 复制并存储在安全位置。
**警告**  
关闭此对话框后，您将无法再次查看或复制您的 PAT。凭证应是短期有效的，以最大限度地减少攻击者在盗用凭证后有效地使用凭证的时间。

1. 从项目的根目录运行以下命令，对程序包存储库配置 npm。这些命令将执行以下操作：
   + 如果您的项目没有项目级 `.npmrc` 文件，则会创建该文件。
   + 将程序包存储库端点信息添加到您的项目级 `.npmrc` 文件中。
   + 将您的凭证（PAT）添加到您的用户级 `.npmrc` 文件中。

   替换以下值。
**注意**  
如果通过控制台指令进行复制，则以下命令中的值将进行更新且无需更改。
   + *username*用您的 CodeCatalyst 用户名替换。
   + *PAT*用您的 CodeCatalyst PAT 替换。
   + *space\$1name*替换为您的 CodeCatalyst 空间名称。
   + *proj\$1name*用您的 CodeCatalyst 项目名称替换。
   + *repo\$1name*替换为你的 CodeCatalyst 软件包存储库名称。

   ```
   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
   ```

   **对于 npm 6 或更低版本：**要让 npm 始终将身份验证令牌传递给 CodeCatalyst，即使是`GET`请求也是如此，请按如下方式设置 always-auth 配置变量。`npm config set`

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

## 从软件包存储库安装 npm CodeCatalyst 软件包
<a name="npm-install"></a>

在按照[使用以下命令配置 npm CodeCatalyst](#npm-configure) 中的步骤操作来将 npm 连接到存储库后，您可以在存储库上运行 `npm` 命令。

您可以使用`npm install`命令安装位于软件 CodeCatalyst 包存储库或其上游存储库之一中的 npm 软件包。

```
npm install lodash
```

## 通过 npmjs 安装 npm 软件包 CodeCatalyst
<a name="npm-install-npmjs"></a>

你可以通过 CodeCatalyst 存储库从 npmjs.com 安装来自 [npmjs.com](https://www.npmjs.com/) 的 npm 软件包，方法是将存储库配置为与连接到 npmjs.com 的网关存储库的上游连接。**npm-public-registry-gateway**从 npmjs 安装的程序包被提取并存储在网关存储库和最远的下游程序包存储库中。

**从 npmjs 安装程序包**

1. 如果您尚未执行此操作，请`npm`按照中的步骤使用 CodeCatalyst软件包存储库进行配置[使用以下命令配置 npm CodeCatalyst](#npm-configure)。

1. 检查您的存储库是否已将网关存储库添加为上游连接。**npm-public-registry-gateway**按照中的说明[添加上游存储库](packages-upstream-repositories-add.md)并选择**npm-public-registry-gateway**存储库，您可以检查添加了哪些上游源或**npm-public-registry-gateway**将其添加为上游源。

1. 使用 `npm install` 命令安装程序包。

   ```
   npm install package_name
   ```

有关从上游存储库请求程序包的更多信息，请参阅[请求包含上游存储库的程序包版本](packages-upstream-repositories-request.md)。

## 将 npm 包发布到你的软件 CodeCatalyst 包存储库
<a name="npm-publish"></a>

完成[使用以下命令配置 npm CodeCatalyst](#npm-configure) 后，您可以运行 `npm` 命令。

你可以使用`npm publish`命令将 npm 包发布到 CodeCatalyst 软件包存储库。

```
npm publish
```

有关如何创建 npm 程序包的信息，请参阅 *npm Docs* 上的 [Creating Node.js Modules](https://docs.npmjs.com/getting-started/creating-node-modules)。

## npm 命令支持
<a name="npm-commands"></a>

以下各节除了列出不支持的特定`npm`命令外，还总结了 CodeCatalyst软件包存储库支持的命令。

**Topics**
+ [与程序包存储库进行交互的受支持命令](#supported-commands-that-interact-with-a-repository)
+ [支持的客户端命令](#supported-client-side-commands)
+ [不受支持的命令](#unsupported-commands)

### 与程序包存储库进行交互的受支持命令
<a name="supported-commands-that-interact-with-a-repository"></a>

此部分列出了 `npm` 命令，其中 `npm` 客户端向其配置到的注册表（例如 `npm config set registry`）发出一个或多个请求。这些命令已经过验证，在针对 CodeCatalyst 软件包存储库调用时可以正常运行。


****  

| 命令 | 说明 | 
| --- | --- | 
|   [bugs](https://docs.npmjs.com/cli/bugs)   |  猜测程序包的错误跟踪器 URL 的位置，然后尝试打开它。  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  从零开始安装一个项目。  | 
|   [deprecate](https://docs.npmjs.com/cli/deprecate)   |  弃用程序包的某个版本。  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  修改程序包分发标签。  | 
|   [docs](https://docs.npmjs.com/cli/docs)   |  猜测程序包的文档 URL 的位置，然后尝试使用 `--browser` 配置参数打开它。  | 
|   [doctor](https://docs.npmjs.com/cli/doctor)   |  运行一组检查以验证你的 npm 安装是否可以管理你的 JavaScript 软件包。  | 
|   [install](https://docs.npmjs.com/cli/install)   |  安装程序包。  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  从零开始安装一个项目并运行测试。别名：`npm cit`。此命令运行 `npm ci`，然后立即运行 `npm test`。  | 
|   [install-test](https://docs.npmjs.com/cli/install-test)   |  安装程序包并运行测试。运行 `npm install`，然后立即运行 `npm test`。  | 
|   [outdated](https://docs.npmjs.com/cli/outdated)   |  检查已配置的注册表，确定是否有任何已安装的程序包已过时。  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  ping 已配置或给定的 npm 注册表并验证身份验证。  | 
|   [publish](https://docs.npmjs.com/cli/publish)   |  将程序包版本发布到注册表。  | 
|   [update](https://docs.npmjs.com/cli/update)   |  猜测程序包存储库 URL 的位置，然后尝试使用 `--browser` 配置参数来打开它。  | 
|   [view](https://docs.npmjs.com/cli/view)   |  显示程序包元数据。也可用于输出元数据属性。  | 

### 支持的客户端命令
<a name="supported-client-side-commands"></a>

这些命令不需要与软件包存储库进行任何直接交互，因此 CodeCatalyst不需要任何东西来支持它们。


****  

| 命令 | 说明 | 
| --- | --- | 
|   [bin（旧版）](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  显示 npm `bin` 目录。  | 
|   [build](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  构建程序包。  | 
|   [cache](https://docs.npmjs.com/cli/cache)   |  操作程序包缓存。  | 
|   [completion](https://docs.npmjs.com/cli/completion)   |  在所有 npm 命令中启用制表符自动完成功能。  | 
|   [config](https://docs.npmjs.com/cli/config)   |  更新用户和全局 `npmrc` 文件的内容。  | 
|   [dedupe](https://docs.npmjs.com/cli/dedupe)   |  搜索本地程序包树，并尝试通过将依赖项进一步向上移动来简化结构，这样多个依赖程序包就可以更有效地共享依赖项。  | 
|   [edit](https://docs.npmjs.com/cli/edit)   |  编辑已安装的程序包。在当前工作目录中选择一个依赖项，然后在默认编辑器中打开程序包目录。  | 
|   [explore](https://docs.npmjs.com/cli/explore)   |  浏览已安装的程序包。在指定的已安装程序包目录中创建一个子 Shell。如果指定了一条命令，则此命令将在该子 Shell 中运行，然后立即停止运行。  | 
|   [help](https://docs.npmjs.com/cli/help)   |  获取有关 npm 的帮助。  | 
|   [help-search](https://docs.npmjs.com/cli/help-search)   |  搜索 npm 帮助文档。  | 
|   [init](https://docs.npmjs.com/cli/init)   |  创建 `package.json` 文件。  | 
|   [link](https://docs.npmjs.com/cli/link)   |  创建指向程序包目录的符号链接。  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  列出已安装的程序包。  | 
|   [pack](https://docs.npmjs.com/cli/pack)   |  将程序包打包成 tarball。  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  显示前缀。除非同时也指定了 `-g`，否则这是包含 `package.json` 文件的最近一级父目录。  | 
|   [prune](https://docs.npmjs.com/cli/prune)   |  删除未在父程序包依赖项列表中列出的程序包。  | 
|   [rebuild](https://docs.npmjs.com/cli/rebuild)   |  对匹配的文件夹运行 `npm build` 命令。  | 
|   [restart](https://docs.npmjs.com/cli/restart)   |  运行程序包的停止、重启和启动脚本以及相关的前置和后置脚本。  | 
|   [root](https://docs.npmjs.com/cli/root)   |  将有效的 `node_modules` 目录输出到标准输出。  | 
|   [run-script](https://docs.npmjs.com/cli/run-script)   |  运行任意程序包脚本。  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  锁定依赖项版本以供发布。  | 
|   [uninstall](https://docs.npmjs.com/cli/uninstall)   |  卸载程序包。  | 

### 不受支持的命令
<a name="unsupported-commands"></a>

 CodeCatalyst 软件包存储库不支持这些`npm`命令。


****  

| 命令 | 说明 | 备注 | 
| --- | --- | --- | 
|   [access](https://docs.npmjs.com/cli/access)   |  设置已发布程序包的访问级别。  |  CodeCatalyst 使用的权限模型不同于公共 npmjs 存储库。  | 
|   [adduser](https://docs.npmjs.com/cli/adduser)   |  添加注册表用户账户  |  CodeCatalyst 使用的用户模型不同于公共 npmjs 存储库。  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  运行安全审核。  |  CodeCatalyst 目前不提供安全漏洞数据。  | 
|   [hook](https://docs.npmjs.com/cli/v9/commands/npm-hook)   |  管理 npm 钩子，包括添加、移除、列出和更新。  |  CodeCatalyst 目前不支持任何变更通知机制。  | 
|   [login](https://docs.npmjs.com/cli-commands/adduser.html)   |  对用户进行身份验证。这是 `npm adduser` 的一个别名。  |  CodeCatalyst 使用的身份验证模型不同于公共 npmjs 存储库。有关信息，请参阅[使用以下命令配置 npm CodeCatalyst](#npm-configure)。  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  注销注册表。  |  CodeCatalyst 使用的身份验证模型不同于公共 npmjs 存储库。无法从 CodeCatalyst 存储库中注销，但是身份验证令牌将在其可配置的到期时间后过期。默认令牌持续时间为 12 小时。  | 
|   [owner](https://docs.npmjs.com/cli/owner)   |  管理程序包所有者。  |  CodeCatalyst 使用的权限模型不同于公共 npmjs 存储库。  | 
|   [profile](https://docs.npmjs.com/cli/profile)   |  更改注册表配置文件的设置。  |  CodeCatalyst 使用的用户模型不同于公共 npmjs 存储库。  | 
|   [search](https://docs.npmjs.com/cli/search)   |  在注册表中搜索与搜索词匹配的程序包。  |  CodeCatalyst 不支持该`search`命令。  | 
|   [star](https://docs.npmjs.com/cli/star)   |  标记您喜欢的程序包。  |  CodeCatalyst 目前不支持任何收藏夹机制。  | 
|   [stars](https://docs.npmjs.com/cli/stars)   |  查看已标记为收藏的程序包。  |  CodeCatalyst 目前不支持任何收藏夹机制。  | 
|   [team](https://docs.npmjs.com/cli/team)   |  管理团队和团队成员资格。  |  CodeCatalyst 使用的用户和组成员资格模型不同于公共 npmjs 存储库。  | 
|   [token](https://docs.npmjs.com/cli/token)   |  管理您的身份验证令牌。  |  CodeCatalyst 使用不同的模型来获取身份验证令牌。有关信息，请参阅[使用以下命令配置 npm CodeCatalyst](#npm-configure)。  | 
|   [unpublish](https://docs.npmjs.com/cli/unpublish)   |  从注册表中移除程序包。  |  CodeCatalyst 不支持使用 npm 客户端从存储库中删除软件包版本。您可以在控制台中删除程序包。  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  显示 npm 用户名。  |  CodeCatalyst 使用的用户模型不同于公共 npmjs 存储库。  | 