我正在研究使用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' 。
我缺少一个技巧吗?
答案 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全局变量