

适用于 JavaScript 的 AWS SDK v2 已终止支持。建议您迁移到 [适用于 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。有关更多详情和如何迁移的信息，请参阅本[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

# 为浏览器构建 SDK
<a name="building-sdk-for-browsers"></a>

SDK for JavaScript 作为 JavaScript 文件提供，其中包含对一组默认服务的支持。此文件通常使用引用托管开发工具包的 ` <script>` 标记加载到浏览器脚本中。但是，您可能需要支持默认服务集以外的服务，或者需要自定义开发工具包。

如果您在强制浏览器使用 CORS 的环境之外使用 SDK，并且您希望访问 SDK for JavaScript 提供的所有服务，则可以通过克隆存储库并运行相同的构建工具（这些工具构建了 SDK 的默认托管版本）在本地构建 SDK 的自定义副本。下面几部分介绍使用额外服务和 API 版本构建 SDK 的步骤。

**Topics**
+ [使用 SDK 生成器构建 SDK for JavaScript](#using-the-sdk-builder)
+ [使用 CLI 构建 SDK for JavaScript](#using-command-line-tools)
+ [构建特定服务和 API 版本](#building-specific-services-versions)
+ [使用 Browserify 构建开发工具包作为依赖关系](#building-using-browserify)

## 使用 SDK 生成器构建 SDK for JavaScript
<a name="using-the-sdk-builder"></a>

创建您自己的 适用于 JavaScript 的 AWS SDK 构建的最简单方法是在 [https://sdk.amazonaws.com/builder/js](https://sdk.amazonaws.com/builder/js) 上使用 SDK 生成器 Web 应用程序。使用开发工具包构建器指定要包含在构建中的服务及其 API 版本。

选择**选择所有服务**或**选择默认服务**作为您可以添加或删除服务的起点。选择**开发**以获得更易读的代码，或选择**简化**以创建要部署的简化构建。选择要包含的服务和版本后，选择**构建**以构建和下载您的自定义开发工具包。

## 使用 CLI 构建 SDK for JavaScript
<a name="using-command-line-tools"></a>

要使用 AWS CLI 构建 SDK for JavaScript，需要首先克隆包含 SDK 源代码的 Git 存储库。您必须在计算机上安装 Git 和 Node.js。

首先，从 GitHub 克隆存储库并将目录更改为以下目录：

```
git clone https://github.com/aws/aws-sdk-js.git
cd aws-sdk-js
```

克隆存储库后，下载开发工具包和构建工具的依赖模块：

```
npm install
```

您现在可以构建开发工具包的打包版本。

### 从命令行构建
<a name="building-from-command-line"></a>

生成器工具位于 `dist-tools/browser-builder.js` 中。通过键入以下内容运行此脚本：

```
node dist-tools/browser-builder.js > aws-sdk.js
```

此命令会构建 aws-sdk.js 文件。此文件未压缩。默认情况下，此软件包仅包含一组标准服务。

### 简化构建输出
<a name="minifying-build-output"></a>

为了减少通过网络传输的数据量，可以通过称为*简化* 的过程压缩 JavaScript 文件。简化过程会去掉注释、不必要的空格以及便于阅读但不影响代码执行的其他字符。生成器工具可以生成未压缩的输出或简化的输出。要简化构建输出，请设置 `MINIFY` 环境变量：

```
MINIFY=1 node dist-tools/browser-builder.js > aws-sdk.js
```

## 构建特定服务和 API 版本
<a name="building-specific-services-versions"></a>

您可以选择要在开发工具包中构建的服务。要选择服务，请将逗号分隔的服务名称指定为参数。例如，要仅构建 Amazon S3 和 Amazon EC2，请使用以下命令：

```
node dist-tools/browser-builder.js s3,ec2 > aws-sdk-s3-ec2.js
```

您还可以通过在服务名称后添加版本名称来选择服务构建的特定 API 版本。例如，要构建 Amazon DynamoDB 的这两个 API 版本，请使用以下命令：

```
node dist-tools/browser-builder.js dynamodb-2011-12-05,dynamodb-2012-08-10
```

服务标识符和 API 版本在 [https://github.com/aws/aws-sdk-js/tree/master/apis](https://github.com/aws/aws-sdk-js/tree/master/apis) 上的特定于服务的配置文件中提供。

### 构建所有服务
<a name="building-all-services"></a>

您可以通过包括 `all` 参数来构建所有服务和 API 版本：

```
node dist-tools/browser-builder.js all > aws-sdk-full.js
```

### 构建特定服务
<a name="building-specific-services"></a>

要自定义构建中包含的选定服务集，请将 ` AWS_SERVICES` 环境变量传递给包含所需服务列表的 Browserify 命令。以下示例将构建 Amazon EC2、Amazon S3 和 DynamoDB 服务。

```
$ AWS_SERVICES=ec2,s3,dynamodb browserify index.js > browser-app.js
```

## 使用 Browserify 构建开发工具包作为依赖关系
<a name="building-using-browserify"></a>

Node.js 有一个基于模块的机制，可用于包含来自第三方开发人员的代码和功能。Web 浏览器中运行的 JavaScript 本身不支持此模块化方法。不过，利用名为 Browserify 的工具，您可以使用 Node.js 模块方法并在浏览器中使用为 Node.js 编写的模块。Browserify 将浏览器脚本的模块依赖项构建为可在浏览器中使用的单个自包含 JavaScript 文件。

您可以使用 Browserify 将开发工具包构建为任何浏览器脚本的库依赖项。例如，以下 Node.js 代码需要开发工具包：

```
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
s3.listBuckets(function(err, data) { console.log(err, data); });
```

可以使用 Browserify 将此示例代码编译为与浏览器兼容的版本：

```
$ browserify index.js > browser-app.js
```

然后，应用程序（包括其开发工具包依赖项）可通过 `browser-app.js` 在浏览器中使用。

有关 Browserify 的更多信息，请参阅 [Browserify 网站](http://browserify.org/)。