使用browserify在浏览器中使用aws-sdk的问题

时间:2018-01-18 14:12:23

标签: javascript browserify aws-sdk

我正在研究使用aws-sdk的基于浏览器的应用程序。我使用browserify作为我的应用程序代码,但还没有弄清楚如何将aws卷入其中。我尝试了几种不同的方法:

//MyApp.js - Take 1 using downloaded minified version
var AWS = require ('./aws-sdk.min.js');
...
AWS.config.region='us-east-2';
...

导致无法设置属性' region'未定义的

我的猜测是,这不起作用,因为browserify无法解析缩小的代码。

//MyApp.js - Take 2 using downloaded development version
var AWS = require ('./aws-sdk.js');

这不编译。 Browserify报告错误:无法找到模块' ../ lib / core'

我缺少一个技巧吗?

1 个答案:

答案 0 :(得分:4)

当我在浏览器中使用AWS时,我根据我需要的服务设置了我的区域,例如:

new AWS.EC2({apiVersion: '2016-11-15', credentials, region})

所以这让我很奇怪,也许您下载的版本是封装的,并且没有为browserify公开任何内容。

首先,我在浏览器中测试了该版本,如下所示:

console.log(AWS)
<script src="https://cdnjs.cloudflare.com/ajax/libs/aws-sdk/2.184.0/aws-sdk.min.js"></script>

一切都很好看,然后我继续在browserify上测试。

当您执行以下操作时,您将重新分配AWS全局变量:

var AWS = require ('./aws-sdk.min.js');

但是你已经捆绑了它,所以你很好,你需要做的是以下几点:

require ('./aws-sdk.min.js');
// And then use it happily
AWS.config.region='us-east-2';

无需重新分配AWS全局变量